Запуск нескольких работников очереди Laravel с помощью Supervisor
Я использовал очереди Laravel, используя драйвер базы данных и супервизор, чтобы постоянно поддерживать работника очереди:
[program:laravel_queue]
command=php artisan queue:listen --timeout=1800 --tries=5
directory=/var/app/current
stdout_logfile=/var/app/support/logs/laravel-queue.log
logfile_maxbytes=0
logfile_backups=0
redirect_stderr=true
autostart=true
autorestart=true
startretries=86400
EOB
Некоторые из задач очереди могут занять около 10 минут.
У меня есть 2 части к вопросу:
1) Как я могу отредактировать вышеупомянутый скрипт для запуска нескольких (например, 3) рабочих очереди в одной и той же очереди.
2) Есть ли способ масштабирования числа работающих в очереди в зависимости от количества заданий, ожидающих обработки?
Причиной вопроса 2 является то, что у нас есть несколько загруженных периодов, а затем много тихих периодов, поэтому я не хочу тратить ресурсы на одновременную работу 3 слушателей.