Laravel指定队列的配置与使用

今天在公司使用队列遇到的一个坑,使用onQueue推送到指定队列之后,队列没有被消费,解决方法分享一下

SendMail::dispatch($user)->onQueue('send_mail');

文档中只说默认是default队列,没有给出如何配置新的队列,研究如下:

在config/queue中配置send_mail队列:

 'redis' => [    //原有的默认队列
            'driver' => 'redis',
            'connection' => 'queue',
            'queue' => env('REDIS_QUEUE', 'default'),
            'retry_after' => 120,
            'block_for' => null,
         ],
'redis' => [  //新增加的send_mail队列
            'driver' => 'redis',
            'connection' => 'queue',
            'queue' => 'send_mail', //在这里命名队列(好坑!)
            'retry_after' => 120,
            'block_for' => null,
        ],

启动队列的命令:

php artisan queue:work  --queue=send_mail

或者下面这个也可以

php artisan queue:work redis --queue=send_mail

每个队列都要这样启动!

你可能感兴趣的:(Laravel指定队列的配置与使用)