我们需要通过在config/horizon.php中的队列工作程序配置中添加一个元素来指示 Horizon 启动一个队列工作程序,该工作程序notifications
除了处理队列之外还处理队列:default
'environments' => [
...
'(environment name)' => [
'supervisor-1' => [
...
'queue' => [ 'default', 'notifications' ],
],
],
],
该'queue'
指令声明了 Horizon 工作人员在哪些队列中监视作业。开箱即用的配置仅指定default
队列,因此工作人员将仅处理推送到该队列的作业。以上大致等价于:
php artisan queue:work --queue=default,notifications
...其中逗号分隔列表中的第一个队列具有最高优先级,最后一个队列具有最低优先级。Horizon 通过分配更大份额的进程而不是按优先级顺序处理队列来对队列进行优先级排序。
或者,我们可以将第二个工作组添加到处理第二个队列的配置中:
'(environment name)' => [
'supervisor-1' => [
...
'queue' => [ 'default' ],
],
'supervisor-2' => [
...
'queue' => [ 'notifications' ],
],
],
... Horizon 为同时运行的两个队列中的每一个启动队列工作进程。