پی ایچ پی ریبٹ ایم کیو ورک موڈ
ریبٹ ایم کیو میں ورک موڈ کا استعمال ایک ہی قیو سے میسجز کو پروسیس کرنے کے لئے متعدد کنسیومرز کو تشکیل دینا شامل ہے، جو میسجز کی ہمزیل پروسیسنگ کی رفتار بڑھا سکتا ہے۔ اس تعمار کو نیچے دی گئی ڈائاگرام میں دکھایا گیا ہے:
نوٹ: ریبٹ ایم کیو کے ورکنگ موڈ کا استعمال ہو، ہر قیو متعدد کنسیومرز کا حمایت کرتا ہے، اور ایک ہی قیو میں میسجف صرف ایک کنسیومر کے ذریعے ہی پروسیس ہوگا۔
1. تیاری کا ٹیوٹوریل
براہ کرم مندرجہ ذیل حصوں کو پڑھیں تاکہ موصول علم حاصل ہو:
- ریبٹ ایم کیو کور کونسپٹس
- ریبٹ ایم کیو ورک موڈ
- پی ایچ پی میں ریبٹ ایم کیو کے لئے تیز روایتی شروعات (ضروری ہے، کیونکہ موجودہ حصوں میں کوڈ کو دہرانے کا امکان نہیں ہے، صرف اہم کوڈ دکھایا جائے گا)
2. پی ایچ پی میں متعدد کنسیومرز کو لاگو کرنا
پی ایچ پی خود میں متعدد کنسیومرز کو لاگو کرنے کی طرح کے متزرع تکنیکوں جیسے مالٹی تھریڈنگ اور کوروٹائنوز کا حمایت نہیں کرتا ہے، لہذا عام طور پر متعدد پروسیسز کا استعمال کرتا ہے تاکہ میسجز کی ہمزیل پروسیسنگ حاصل ہو۔ یہاں، ہم متعدد پروسیس موڈ کا استعمال کر کے قیو میں متعدد کنسیومرز کی ہمزیل پروسیسنگ کو لاگو کرنے کے لئے متعدد پروسیسز کاآیا ہے۔
2.1. ہاتھ سے متعدد پروسیسز چلانا
متعدد پروسیسز کو لاگو کرنے کے لئے سب سے آسان طریقہ یہ ہے کہ پی ایچ پی کمانڈ کو ہاتھ سے متعدد مرتبہ چلایا جائے۔
مثال کے طور پر:
مان لیں پچھلے سیکشن میں استعمال ہونے والا کنسیومر اسکرپٹ recv.php
ہے، ہم ایسے کنسیومر اسکرپٹ کو مندرجہ ذیل طریقے سے چلا سکتے ہیں:
php recv.php
php recv.php
یا وہی شیل ونڈو میں، اسکرپٹ کو پیچھے سے بگراونڈ میں چلانے کے لئے:
php recv.php &
php recv.php &
وضاحت: اس ہاتھ سے متعدد کنسیومرز کو لاگو کرنے کے طریقے کی ناقصیت یہ ہے کہ پروسیسز کو اچھی طرح سے نہیں رکھا گیا ہے، کوئی پروسیس فیل ہونے کی صورت میں وہ خود بخود دوبارہ شروع نہیں ہوگا۔
2.2. سپرووائیزر کا استعمال کر کے متعدد پروسیسز کو لاگو کرنا
سپرووائیزر لینکس عملی نظام میں ایک پروسیس منیٹر ہے، جو پی ایچ پی پروسیسز کی نگرانی کر سکتا ہے۔ اگر پی ایچ پی پروسیس کرش ہوتا ہے، تو یہ خود بخود دوبارہ شروع ہو جائے گا۔ یہ پروسیسز کی کنکرنسی کو بھی تشکیل دینے کا امکان فراہم کرتا ہے، جس سے مختلف کنسیومرز کی ہمزیل پروسیسنگ آسان ہو جاتی ہے۔
یہاں ہم اوبونٹو کا استعمال کر کے ایک مثال دیتے ہیں، دیگر لینکس تقسیمات کے لئے بھی یہی طریقہ ہے۔
سپرووائیزر کا انسٹال کرنا
sudo apt-get install supervisor
سپرووائیزر کا تشکیل کرنا
سپرووائیزر کی تشکیل کیلئے عام طور پر /etc/supervisor/conf.d
ڈائرکٹری میں یہ تشکیل فائل ہوتی ہے۔ اس ڈائریکٹری میں، آپ کسی بھی تعداد میں تشکیل فاآیلیں بنا سکتے ہیں تاکہ سپرووائیزر کو بتایا جائے کہ ہمارے پروسیسز کی نگرانی کیسے کرنی ہے۔ مثال کے طور پر، ایک فائیل rabbitmq-worker.conf
بنائیں تاکہ ہمارے کنسیومر پروسیسز کی نگرانی کرے۔
مثال: فائل: rabbitmq-worker.conf
[program:rabbitmq-worker]
process_name=%(program_name)s_%(process_num)02d
command=php recv.php
autostart=true
autorestart=true
user=root
numprocs=10
redirect_stderr=true
stdout_logfile=/var/log/worker.log
پیرامیٹرز کی وضاحت:
- process_name: پروسیس کے نام کی تعریف، جسے کسی بھی طریقے سے نام بنایا جا سکتا ہے۔ یہاں، دو متغیرات استعمال ہوئے ہیں:
program_name
(پروسیس کا نام) اورprocess_num
(پروسیس نمبر)۔ - command: ہمیں جو کمانڈ چلانی ہے۔
- autostart: خود بخود بوٹ ہونے پر چلانا یا نہیں چلانا۔
- autorestart: خود با خود دوبارہ شروع ہونا یا نہیں شروع ہونا۔
- user: کمانڈ چلانے کے لئے سسٹم اکاؤنٹ۔
- numprocs: کنکرنٹ پروسیسز کی تعداد، جو بتاتا ہے کہ کتنے پروسیسز چلانے ہیں۔
- stdout_logfile: رننگ لاگ فاآیل کی کہاں محفوظ ہوگی۔