2015-05-18 5 views
0

Я использую Supervisord для наблюдения за очередью в Laravel 4.2. Это мой Supervisord конфигурационный файл:Требуется ли перезапуск Supervisord после внесения изменений в файл Laravel?

[program:webhooks] 
command=php artisan queue:work --daemon --queue=webhooks --tries=3 --sleep=5 
directory=/var/www/html/app 
stdout_logfile=/var/www/html/app/app/storage/logs/webhooks_supervisord.log 
redirect_stderr=true 
autostart=true 
autorestart=true 

Как я вижу в документации Laravel: рабочие очереди

Daemon не перезапускать рамки перед обработкой каждого задания.

Из того, что я могу сказать, это означает, что если я вношу изменения в один из файлов в рамках, это изменение не будет отражено в демоне, обрабатывающем очередь. Например, если один из моих файлов говорит echo 1;, и я изменяю его на echo 2;, версия фреймворка, который использует очередь, все равно скажет echo 1, пока я не перезапущу очередь. Чтобы эти новые изменения вступили в силу, мне нужно запустить:

sudo supervisorctl 
supervisor> stop webhooks 
supervisor> start webhooks 

Правильно ли это, что это требуется? Или есть ли другой способ справиться с этим, чтобы новые изменения в файлах были собраны без перезапуска очереди?

ответ

1

С тех пор, как работник очереди демона загружает файл только после его перезапуска до того, как будут получены какие-либо изменения кода. Here - хороший пример того, как управлять несколькими связанными рабочими очередями, когда проект становится слишком большим, чтобы вручную перезапустить каждого рабочего.

В качестве альтернативы вы можете использовать queue listener через php artisan queue:listen. Этот параметр значительно увеличивает загрузку процессора из-за того, что вся инфраструктура загружается с нуля после каждой работы.

Смежные вопросы