اگه پروژه ات با لاراول ساخته شده و از Queue یا همون صف ها استفاده میکنی، حتماً لازمه یه ابزار حرفهای برای مدیریت اونها داشته باشی. یکی از بهترین ابزارا برای این کار، سوپروایزر (Supervisor) هست. تو این مقاله قراره خیلی ساده و کاربردی یاد بگیری که چجوری سوپروایزر رو توی AlmaLinux نصب کنی و job های لاراولت رو همیشه در حال اجرا نگه داری.
سوپروایزر یه برنامه لینوکسیه که کمک میکنه یه سری دستورات یا برنامه ها رو به صورت دائمی و پایدار توی پسزمینه اجرا کنیم.
برای مثال، اگه توی پروژهت این دستور اجرا نشه:
php artisan queue:work
هیچ کدوم از صفها اجرا نمیشن. نه ایمیلی میره، نه پیامکی، نه کارهای زمان بندی شده انجام میشن. خلاصه پروژهت ناقص میمونه!
سوپروایزر میاد این دستور رو میچسبه و همیشه اجرا نگهش میداره.
اگه WHM یا ترمینال داری، با دسترسی root یا sudo وارد SSH شو:
ssh your-user@your-server-ip
sudo dnf install epel-release -y
sudo dnf install supervisor -y
sudo systemctl enable supervisord
sudo systemctl start supervisord
تست نصب سوپر وایزر
sudo systemctl status supervisord
فایلهای کانفیگ سوپروایزر داخل این مسیر هستن میتونی با دستور nano ادیت کنی.
/etc/supervisord.d/
ساخت فایل مخصوص پروژه لاراول
sudo nano /etc/supervisord.d/laravel-worker.ini
و محتوای زیر رو توش بنویس:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/your-user/your-project/artisan queue:work --sleep=3 --tries=3 --timeout=90
autostart=true
autorestart=true
user=your-user
numprocs=1
redirect_stderr=true
stdout_logfile=/home/your-user/your-project/storage/logs/laravel-worker.log
stopwaitsecs=3600
توجه: حتما مسیر پروژه و یوزر رو بهجای `your-user` و `your-project` درست بنویس.
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:
برای دیدن وضعیت اجرای جابها:
sudo supervisorctl status
اگه همهچی اوکی باشه، باید یه چیزی مثل این ببینی:
laravel-worker:laravel-worker_00 RUNNING pid 12345, uptime 0:00:45
اجرای دائمی job در Laravel با سوپروایزر
اینجوری دیگه لازم نیست هربار دستی دستور `php artisan queue:work` رو اجرا کنی. سوپروایزر خودش همیشه مراقبه که queueها اجرا باشن. هر وقت سرور ریاستارت بشه یا به هر دلیلی پروسه از کار بیفته، خودش دوباره راهاندازیش میکنه.
توی لاراول وقتی یه کار (مثل ارسال ایمیل، فاکتور، پردازش فایل و...) رو با delay یا صف اجرا میکنی، بهش میگن background task. یعنی کاربر لازم نیست منتظر بمونه، ولی پشت صحنه اون کار انجام میشه.
با نصب سوپروایزر، این background task ها همیشه فعال هستن و بدون نیاز به دخالت دستی انجام میشن.
نکات حرفهای و مهم
tail -f /home/your-user/your-project/storage/logs/laravel-worker.log
اگه کد تغییر کرد، حتماً دستور ری استارت بزن:
sudo supervisorctl restart laravel-worker:
برای اجرای چند worker موازی، میتونی `numprocs=1` رو بذاری روی 2 یا بیشتر.
پس
اگه میخوای پروژه لاراولت بدون دردسر، همیشه آماده باشه و کارای پشتصحنه بهدرستی انجام بشن، نصب و پیکربندی Supervisor در AlmaLinux یکی از واجبترین کارهاست.
با این آموزش، دیگه خیالت راحت باشه که جابهات، صفهات و حتی background taskهای لاراول، بهصورت دائمی و اتوماتیک در حال اجرا هستن.
جستجو
قطعا تو ذهنت سوال داری
چرا زنگ نمیزنی که برات حلش کنیم؟
اینجا میتونه شروع راه تو باشه
تماس با پشتیبان
در باریز، ما فراتر از یک تیم طراحی سایت و سئو هستیم؛ ما یک خانواده از خلاقان و متخصصان دیجیتال هستیم که با ترکیب هنر و تکنولوژی، کسبوکارها را به سطح جدیدی میبریم.
هدف ما ساخت تجربههای دیجیتال منحصر به فرد است که نه فقط زیبا، بلکه تأثیرگذار و نتیجهبخش باشند.
© Copyright 2024 - bariz. All Right Reserved
پشتیبان شماره 2
آنلاین
پیامی برای نمایش وجود ندارد