Laravel Horizon - несколько очередей, запущенных от одного руководителя
Может ли кто-нибудь помочь с правильной конфигурацией в horizon.php, чтобы один супервизор запускал несколько очередей? Я пытался:
'supervisor-1' => [
'connection' => 'redis',
'queue' => ['default', 'queue2'],
'balance' => 'simple',
'processes' => 10,
'tries' => 3,
],
так же как:
'supervisor-1' => [
'connection' => 'redis',
'queue' => 'default, queue2',
'balance' => 'simple',
'processes' => 10,
'tries' => 3,
],
Вторая очередь правильно отображается на горизонте, и я могу отправлять им задания, но они просто не обрабатываются.
Я подготовлен в Forge и настроил свои очереди, используя redis со следующей конфигурацией queue.php:
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default', // Default Queue
'retry_after' => 90,
'block_for' => null,
],
2 ответа
В последней версии Horizon (V5) и Laravel (V10) объявление массива является ожидаемым подходом:
'supervisor-1' => [
'connection' => 'redis',
'queue' => ['default', 'queue2']
],
В config/horizon.php
'supervisor-1' => [
'connection' => 'redis',
'queue' => ['default', 'queue2'],
'balance' => 'simple',
'processes' => 10,
'tries' => 3,
],
в супервизоре: --queue=default,queue2
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/App/artisan queue:listen redis --queue=default,queue2 --sleep=3 --tries=3
autostart=true
autorestart=true
user=root
numprocs=8
redirect_stderr=true
stdout_logfile= /var/www/html/App/storage/logs/worker.log