是否将自定义队列中的拉威尔作业替换为默认队列? [英] Laravel jobs on custom queue replace by "default" queue?

查看:20
本文介绍了是否将自定义队列中的拉威尔作业替换为默认队列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理队列,发现自定义队列将不会运行。

我运行php artisan queue:work --queue=emails并调度队列MyJob::dispatch()->onQueue('emails')->delay(now()->addMinutes(1))

在数据库表jobs中将如下所示:

id 队列 负载
1 电子邮件 .

1分钟后:

id 队列 负载
2 默认值 .
队列emails似乎已处理,并已从数据库中删除。然后使用相同的负载为队列default创建另一个作业,作业队列default将永远不会运行,除非我运行php artisan queue:work --queue=emails,default

在Laravel文档中没有提到始终运行队列defaulthttps://laravel.com/docs/8.x/queues#specifying-the-connection-queue

行为是否正确?

推荐答案

在我的案例中,当我将QUEUE_CONNECTION设置为.env中的database时,会出现重复行的问题:

QUEUE_CONNECTION=database

我通过将QUEUE_CONNECTION的值保留为Laravel的默认值sync

解决了该问题

并将database添加到命令中,如下所示:

php artisan queue:work database --queue=my_custom_queue_name

这篇关于是否将自定义队列中的拉威尔作业替换为默认队列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆