【问题标题】:How to retry job programmatically in laravel queue?如何在 laravel 队列中以编程方式重试作业?
【发布时间】:2016-11-05 02:50:21
【问题描述】:

如何检查作业是否未能完成?
我如何告诉作业在作业的句柄函数中重试?
或者如何强制将作业视为失败的作业?

【问题讨论】:

标签: laravel queue


【解决方案1】:

我发现代码需要运行失败(或抛出异常)才能被视为失败的作业。
我只是在需要的地方添加了throw new Exception()
然后 laravel 将其视为失败的作业。

【讨论】:

    【解决方案2】:

    你可以在你的 Job 中实现失败的函数。

    <?php
    
    namespace App\Jobs;
    
    .......
    
        public function failed(\Exception $exception)
        {
            \Log::info('job failed');
        }
    }
    

    【讨论】:

      【解决方案3】:

      我如何告诉作业在作业的句柄函数中重试?

      不确定是否适用于其他连接类型,但如果您使用的是 Redis,则可以通过命令直接从 handle() 主体将作业释放回队列:

      $this->release(10);
      

      其中 10 是以秒为单位的延迟,之后它应该返回到队列中。

      【讨论】:

        猜你喜欢
        • 2012-06-29
        • 2013-01-13
        • 2018-07-15
        • 1970-01-01
        • 1970-01-01
        • 2016-09-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-20
        相关资源
        最近更新 更多