В чем разница между очередью ремесленников: работа и горизонт ремесленников: работа?

Я использую очереди Laravel и Redis с Horizon.
Супервайзер работает artisan horizon который в свою очередь порождает процессы /usr/bin/php7.2 artisan horizon:work redis

Нужно ли бежать queue:work или Horizon уже может обрабатывать очередь самостоятельно?

3

Решение

С установленным Horizon, Ремесленник queue:work а также horizon:work Команды выполняют те же задачи, за исключением того, что horizon:work принимает аргументы, которые он использует для координации с супервизором Horizon.

При запуске процесса супервизора Horizon (через artisan horizon), нам никогда не нужно выполнять horizon:work вручную. horizon:work Команда запускает рабочий процесс очереди, и супервизор запускает его автоматически при настройке рабочих пулов.

От руководитель, Я имею в виду процесс менеджера Horizon, а не системы supervisord который мы используем, чтобы запустить Horizon как сервис.

По факту, horizon:work отмечен скрытый, поэтому мы даже не увидим его в доступных командах, показанных artisan list,

Мы все еще можем выполнить artisan queue:work вручную, чтобы запустить отдельного работника очереди, который не управляется Horizon.

artisan queue:work --once <connection> Команда более полезна — она ​​обрабатывает следующий ожидающий элемент в очереди и может помочь отладить некорректно выполняемые задания в процессе разработки.

Чтобы это было эффективным, мы должны запустить его после остановки всех долго работающих работников очереди, чтобы мы могли контролировать, когда выполняется задание. Horizon делает это легко:

php artisan horizon:terminate
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]