Laravel Horizon не обрабатывает очереди

Поскольку я обновил свое приложение Laravel с 5.4 до 5.5 и добавил Laravel Horizon, моя очередь больше не работает. Вот старая ситуация, которая сработала:

Я использовал драйвер Beanstalkd и Supervisord для мониторинга задачи и поддержания ее работоспособности. Я запустил его с помощью этой команды:

php artisan queue:work --tries=1 --queue=high,medium,low

Новая ситуация: я обновил драйвер очереди до Redis. Когда я смотрю на mydomain.com/horizon, я вижу, что задачи поступают, но не обрабатываются. Выполнение следующей команды из терминала тоже не работает:

php artisan queue:work --tries=1 --queue=high,medium,low

У меня есть 2 заполненные очереди: очередь Redis и очередь Beanstalkd. Как я могу закончить очередь Beanstalkd, а затем обработать очередь Horizon?


person Donny van V    schedule 15.12.2017    source источник
comment
Когда вы запускаете php artisan queue: work без указания соединения, он просто будет использовать соединение по умолчанию - я предполагаю, что у вас есть отдельные записи подключения для драйверов beanstalk и redis. вы можете указать соединение с php artisan queue: work beanstalk или php artisan queue: work redis (независимо от того, как называются ваши соединения)   -  person aarcarr    schedule 15.12.2017
comment
.... соединения должны быть в config / queue.php   -  person aarcarr    schedule 15.12.2017
comment
Вы пробовали указать драйвер как часть команды? очередь php artisan: работа redis --queue = все   -  person Dave Carruthers    schedule 15.12.2017
comment
... ваш .env должен иметь драйвер очереди по умолчанию, т.е. QUEUE_DRIVER = redis   -  person aarcarr    schedule 15.12.2017
comment
@aarcarr, я пробовал это. php7 artisan queue: прослушать beanstalkd --tries = 1 --queue = high, medium, low, default, но вывода не было. Я также настроил свой файл .env   -  person Donny van V    schedule 15.12.2017
comment
@DaveCarruthers да, я сделал то же самое, что говорит Ааркарр   -  person Donny van V    schedule 15.12.2017
comment
Ваши задания отправляются в одну из перечисленных вами очередей? например: MyJob :: dispatch ($ obj) - ›onConnection ('redis') -› onQueue ('high');   -  person Dave Carruthers    schedule 15.12.2017
comment
Вы делаете только очередь php7 artisan: прослушивание очереди beanstalk? вам нужно сделать очередь php7 artisan: тоже работайте   -  person aarcarr    schedule 15.12.2017


Ответы (1)


Я понял, что команда artisan down заблокирует работников очереди :) Итак, после запуска artisan все работает хорошо ... Думаю, пора на выходные: P

person Donny van V    schedule 15.12.2017
comment
Это потрясающе разбираться в деталях :) - person aarcarr; 15.12.2017
comment
отметьте свой ответ !! - person aarcarr; 15.12.2017
comment
Я пока не могу этого сделать ... Мне нужно подождать 2 дня, прежде чем я смогу :( - person Donny van V; 16.12.2017
comment
Кстати, спасибо за помощь! - person Donny van V; 16.12.2017
comment
Проклятье! Два часа потрачены впустую :(. Думаю, я заслужил это за работу на выходных: D. Спасибо, что упомянули об этом. - person Bogdan; 13.03.2021