【问题标题】:Laravel how I can undispatch a delayed dispatched job?Laravel如何取消调度延迟的调度工作?
【发布时间】:2020-11-18 20:02:44
【问题描述】:

在我的 laravel 代码中我派遣了一份工作:

 MyJob::dispatch()->delay(now()->addHours(48));

但在另一段代码中,我希望不分派此作业,因为发现不再需要运行作业的条件。满足 undispatch 条件的 phpcode 是:


if ( $no_job_needed){
 // Undispatch Job there
}

【问题讨论】:

    标签: php laravel-5.7


    【解决方案1】:

    您可以使用 dispatchIf 方法,例如:

    MyJob::dispatchIf($no_job_needed  === false)->delay(now()->addHours(48));
    

    【讨论】:

    • 好吧,我的情况是我派遣了一份工作,例如为用户分配一些积分。但是另一个事件,例如收到的 api 调用导致不再需要我的工作条件。
    猜你喜欢
    • 2022-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 2021-11-14
    • 2019-03-05
    • 1970-01-01
    相关资源
    最近更新 更多