Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Доброго времени суток.
Если кто сталкивался, прошу помочь со следующей проблемой - есть необходимость одновременного выполнения определения определенного числа задач из очереди, например - 8.
В конфиге супервизора есть опция numprocs=8 , и сразу при старте супервизора все прекрасно - 8 задач одновременно начинают обрабатываться. В дальнейшем же одновременно выполняется от 1 до 3 задач, но не 8: https://scr.pics/Monosnap_2017-02-28_21-06-38.png
Конфиг супервизора:
[program:laravel-worker]
#process_name=%(laravelWorker)s_%(1)02d
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php71 /home/www-data/domains/app/artisan queue:listen --timeout=0 --tries=5
autostart=true
autorestart=true
user=www-data
numprocs=8
redirect_stderr=true
stdout_logfile=/home/www-data/domains/app/laravelWorker.log
Запущено при этом как и следует, 8 обработчиков очереди:
www-data 23569 0.6 0.1 451852 28972 ? S 21:43 0:08 /opt/remi/php71/root/usr/bin/php artisan queue:work --once --queue=default --delay=0 --memory=128 --sleep=3 --tries=5
www-data 23883 0.5 0.1 451520 28260 ? S 21:52 0:04 /opt/remi/php71/root/usr/bin/php artisan queue:work --once --queue=default --delay=0 --memory=128 --sleep=3 --tries=5
www-data 24892 0.6 0.1 451852 28676 ? S 21:57 0:02 /opt/remi/php71/root/usr/bin/php artisan queue:work --once --queue=default --delay=0 --memory=128 --sleep=3 --tries=5
www-data 24910 0.7 0.1 451852 28676 ? S 21:58 0:02 /opt/remi/php71/root/usr/bin/php artisan queue:work --once --queue=default --delay=0 --memory=128 --sleep=3 --tries=5
www-data 25001 0.7 0.1 451520 30292 ? S 22:00 0:01 /opt/remi/php71/root/usr/bin/php artisan queue:work --once --queue=default --delay=0 --memory=128 --sleep=3 --tries=5
www-data 25005 0.7 0.1 451520 30300 ? S 22:00 0:01 /opt/remi/php71/root/usr/bin/php artisan queue:work --once --queue=default --delay=0 --memory=128 --sleep=3 --tries=5
www-data 25010 0.7 0.1 451520 29412 ? S 22:00 0:01 /opt/remi/php71/root/usr/bin/php artisan queue:work --once --queue=default --delay=0 --memory=128 --sleep=3 --tries=5
www-data 26444 1.8 0.1 451520 28540 ? S 22:03 0:01 /opt/remi/php71/root/usr/bin/php artisan queue:work --once --queue=default --delay=0 --memory=128 --sleep=3 --tries=5
Но реально выполняется только от 1 до 3 задач одновременно. При этом если перезапустить супервизор то их снова будет одновременно выполняться 8. Сами задачи же выполняются нормально, без ошибок и тд.
Эту проблему наблюдаю уже не на первом проекте, возникает она у меня на разных проектах с разным характером задач в очереди - от простейших до сложных, но сейчас возникла очень большая необходимость в одновременном выполнении определенного числа задач.
Почему так происходит? Как сделать так, чтобы стабильно одновременно выполнялось нужное количество (8) задач из очереди?
Изменено Ivan_Garbera (28.02.2017 22:13:07)
Не в сети
наверное из-за того что используешь queue:listen. с ним вообще проблемы, залипает, отваливается, проц жрёт. я его использую только в отладке, для продакшена – queue:work --daemon.
вот пример рабочего конфига на 4 процесса, работает в продакшене прямо сейчас без каких либо проблем. версия лары 5.3.
[program:app-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/webserver/app/artisan queue:work --sleep=3 --tries=3 --daemon -v
autostart=true
autorestart=true
user=webserver
numprocs=4
redirect_stderr=true
stdout_logfile=/home/webserver/app/storage/logs/worker.log
у меня небольшое отличие от твоего конфига – под www-data работает только nginx. php-fpm, очередь, задачи по крону – всё запущено от пользователя webserver
Не в сети
Спасибо. Перевел очереди beanstalk, пока полет нормальный и с моим конфигом. Если будут проблемы то попробую queue:work --daemon
Не в сети