Задание очереди Laravel не обновляется до последней версии кода

Я использую задание очереди laravel для отправки электронных писем с вложением excel. И часто бывает так, что всякий раз, когда я обновляю какое-либо изменение кода, он не учитывает обновленный код, а запускает старый код. Как я могу предотвратить это?


person Nitish Patra    schedule 22.10.2018    source источник
comment
Перезапустите работника очереди, и все должно быть в порядке.   -  person thisiskelvin    schedule 22.10.2018
comment
остановить очередь и снова запустить после обновления кода   -  person Jignesh Joisar    schedule 22.10.2018
comment
Делал и так, делал четкую компиляцию, перезапускал супервизор, чистил кеш, просмотры и все. Но все же сохраняется   -  person Nitish Patra    schedule 22.10.2018
comment
запустить очередь php artisan: перезапустить   -  person Jacob    schedule 22.10.2018
comment
Якоб тоже пробовал   -  person Nitish Patra    schedule 22.10.2018
comment
Если вы что-то изменили в настройках или файле .env, вам также нужно запустить config:cache. В зависимости от настроек вашего сервера вам, возможно, придется убить процесс queue:work вместо его перезапуска.   -  person Dimitri Mostrey    schedule 22.10.2018
comment
@dimitri Конфигурация: кеш необходим. Обычно я иду на очистку этого. Кроме того, работа с очередью поддерживается Супервизором, который автоматически запускает или перезапускает очередь. Обязательно ли это делать с моей стороны?   -  person Nitish Patra    schedule 22.10.2018
comment
Возможный дубликат laravel 5.1 не видит изменений в файл задания без перезапуска ВМ   -  person ceejayoz    schedule 22.10.2018
comment
Спасибо всем за предложение. Моя проблема теперь решена. На самом деле это было исключение, которое не обрабатывалось. Я вручную зарегистрировал исключение и исправил проблему. А сейчас ходит нормально. Я предполагаю, что если супервизор заботится о перезапуске очереди, вручную очередь: перезапуск поможет, хотя я не уверен, но это кажется полезным.   -  person Nitish Patra    schedule 23.10.2018


Ответы (1)


Каждый раз, когда вы развертываете свое приложение Laravel или вносите какие-либо изменения в код, вы должны запускать:

php artisan queue:restart

Конечно, убедитесь, что в Supervisor вы установили autostart в true.

Вы можете прочитать на https://laravel.com/docs/5.4/queues#running-the-queue-worker :

Поскольку обработчики очереди являются долгоживущими процессами, они не будут принимать изменения в вашем коде без перезапуска. Таким образом, самый простой способ развернуть приложение с помощью обработчиков очередей — перезапустить обработчиков во время процесса развертывания. Вы можете изящно перезапустить всех рабочих, выполнив очередь: перезагрузка

person Marcin Nabiałek    schedule 22.10.2018