Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 13.04.2021 15:54:27

Как правильно запустить очередь, в которой используются имена очереди?

Восстанавливаю сейчас к работе проект двухлетней давности.

В нем используется Laravel 5.5.45.

Проблема вот в чем. Очереди в проекте настроены на драйвер database, используется MySQL (MariaDB). Таблицы jobs и failed_jobs созданы. Задания очереди успешно создаются, и появляются в таблице jobs. Для заданий предусмотрено 3 очереди:

- email
- phone
- telegram

В таблице jobs в поле queue видно соответствующее имя очереди.

Если согласно документации запустить очередь командой:

php artisan queue:work

то задания выполняться не будут, и поле attempt (количество попыток запуска) для всех заданий будет содержать значение 0.

В какой-то момент я нащупал, что если запустить команду:

php artisan queue:work --queue=telegram,default

то задания из очереди telegram таки выполнятся.

Но в документации я не нашел описания того, что для работы обработчика очереди требуется обязательно указывать имя очереди. Вроде как команда php artisan queue:work должна обрабатывать все очереди, но этого не происходит.

Вопрос: а какой командой таки можно запустить обработку всех именованных очередей? Я ее пропишу в Supervisor.

Изменено xintrea (13.04.2021 15:59:18)

Не в сети

#2 31.12.2025 12:01:41

Re: Как правильно запустить очередь, в которой используются имена очереди?

The php artisan queue:work command by itself is designed to process jobs from the default queue unless you specify otherwise. To process all your named queues (email, phone, telegram), you'll want to use php artisan queue:work --tries=3 and you can list all of them like: php artisan queue:work --queue=email,phone,telegram,default. This way, Supervisor will know to process all of them.

Не в сети

Подвал раздела