今天在公司使用队列遇到的一个坑,使用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
每个队列都要这样启动!
网友评论