Laravelda production serverda queue larni sozlash

Xayrli kun, bu maqolada laravelda queue/job larni serverda sozlashni o'rganamiz.
Quyidagi ketma-ketlikda server uchun queue larni sozlash keltirilgan
- Linux serverga ssh protokoli orqali kiring va o'rnatilgan Laravel loyihasining root papkasiga kirib quyidagi buyruqni kiriting:
php artisan queue:table
- Undan so'ng pastda keltirilgan buyruq orqali kerak jadvallarni migratsiya qiling.
php artisan migrate
- Endi siz terminal buyruqlari orqali "Job" lar yaratishingiz mumkin. Quyidagi odatdagi job yaratish uchun misol keltirilgan.
php artisan make:job SendNotification
Yuqoridagi class queue yoki job larni kerakli logika bo'yicha ishlatuvchi controller deb hisoblasak bo'ladi.
Laravelda queuelar uchun turli backend texnolgiyadan foydalanishingiz mumkin masalan Amazon SQS ,redis, yoki relatsion MB.
Endi .env faylda laravel queue/job larni yurgizish uchun sozlamalarni o'rnatamiz.
.envfaylda quyidagi paramaterlarni kiritamiz.QUEUE_DRIVER=databaseyokiQUEUE_CONNECTION=databaseEndi app/Jobs papkasiga o'ting va
SendNotification.phpfaylda queue/job uchun o'ylagan logikangizni yozing.Http controllerida job:: dispatch orqali kerak joblarni navbatga ishlash uchun qo'yishingiz mumkin.
Joblar server fonida ishlashi uchun
supervisordasturidan foydalanishingiz mumkin buning uchun quyidagi buyruqdan foydalanasiz.
apt install supervisor
- Quyidagi papkada joylashgan faylga supervisor dasturchi uchun laravel loyihamiz queue si uchun konfiguratsiyalarni yozamiz:
cd /etc/supervisor/conf.d
nano queue-worker.conf
queue-worker.conf
[program:queue-worker]
process_name = %(program_name)s_%(process_num)02d
command=php /var/www/html/project-folder/artisan queue:listen
autostart=true
autorestart=true
user=root
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/html/project-folder/public/worker.log
- Quyidagi buyruq orqali supervisor qayta ishga tushuramiz.
supervisorctl reread
- server uchun supervisor buyruqlarni yangilaymiz.
supervisorctl update




