Laravel Horizo​​n - 从一个主管运行多个队列

Ada*_*ert 5 php laravel laravel-queue laravel-horizon

任何人都可以帮助在 Horizo​​n.php 中进行正确的配置,以使单个主管运行多个队列吗?我努力了:

'supervisor-1' => [
    'connection' => 'redis',
    'queue' => ['default', 'queue2'],
    'balance' => 'simple',
    'processes' => 10,
    'tries' => 3,
],
Run Code Online (Sandbox Code Playgroud)

也:

'supervisor-1' => [
    'connection' => 'redis',
    'queue' => 'default, queue2',
    'balance' => 'simple',
    'processes' => 10,
    'tries' => 3,
],
Run Code Online (Sandbox Code Playgroud)

第二个队列在地平线中正确显示,我可以向他们发送作业,但它们只是没有得到处理。

我在 Forge 上进行配置,并使用 Redis 和以下 queue.php 配置来设置我的队列:

'redis' => [
        'driver' => 'redis',
        'connection' => 'default',
        'queue' => 'default', // Default Queue
        'retry_after' => 90,
        'block_for' => null,
    ],
Run Code Online (Sandbox Code Playgroud)

Sau*_*try -3

config/horizon.php

'supervisor-1' => [
    'connection' => 'redis',
    'queue' => ['default', 'queue2'],
    'balance' => 'simple',
    'processes' => 10,
    'tries' => 3,
],
Run Code Online (Sandbox Code Playgroud)

在主管:--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
Run Code Online (Sandbox Code Playgroud)

  • 当我们安装并想要使用 Horizo​​n 时,我们不使用 `artisanqueue:listen` 也不使用 `artisanqueue:work`,我们使用 `artisanhorizo​​n`,参考:[Horizo​​n > Supervisor 配置](https://laravel .com/docs/8.x/horizo​​n#supervisor-configuration)。 (4认同)