【问题标题】:Why does my queue event delay not working为什么我的队列事件延迟不起作用
【发布时间】:2021-06-06 15:32:43
【问题描述】:

我需要你的帮助。

我正在使用 Laravel 5.5 队列和 Linux 主管工具(与文档完全一样)

现在我有一个非常奇怪的问题。

当我毫不拖延地使用这个命令时

event(new NewOrderHasBeenPlaceEvent($get_order_details, $tran_id, $customerDet->phone));

一切正常。

但是当我使用延迟选项时

 event(new NewOrderHasBeenPlaceEvent($get_order_details, $tran_id, $customerDet->phone))->delay(Carbon::now()->addMinutes(5));

我收到一个错误: 调用数组上的成员函数 delay(),但队列已按预期执行。

我试图用谷歌搜索,但什么也找不到,这让我一整天都被困住了。提前致谢。

【问题讨论】:

    标签: laravel laravel-5 queue


    【解决方案1】:

    您不应该在 event() 助手上使用 delay()。您可以通过实现将侦听器代码排队但在触发事件时不排队的 ShouldQueue 将事件侦听器排队。

    如果你想使用延迟,你可以创建一个作业类并使用延迟选项调度它,即 MyJob::dispatch()->delay(Carbon::now()->addMinutes(5))

    【讨论】:

    • 我对事件和工作感到困惑,因为我认为它非常相似,现在根据您的建议切换到工作后,我可以使用延迟。谢谢
    猜你喜欢
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多