【问题标题】:Laravel jobs on custom queue replace by "default" queue?自定义队列上的 Laravel 作业替换为“默认”队列?
【发布时间】:2021-04-24 15:49:33
【问题描述】:

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

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

在数据库表jobs中会是这样的:

id queue payload
1 emails ...

1分钟后:

id queue payload
2 default ...

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

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

这是正确的行为吗?

【问题讨论】:

    标签: laravel laravel-8


    【解决方案1】:

    就我而言,当我在.env 文件中将QUEUE_CONNECTION 设置为database 时,会出现重复行的问题,如下所示:

    QUEUE_CONNECTION=database
    

    我通过保持 QUEUE_CONNECTION 的值作为 Laravel 的默认值 sync 解决了这个问题

    并将database 添加到这样的命令中:

    php artisan queue:work database --queue=my_custom_queue_name
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-08
      • 1970-01-01
      • 2014-11-19
      • 2017-11-20
      • 1970-01-01
      • 2019-05-29
      • 1970-01-01
      相关资源
      最近更新 更多