如何在laravel队列中以编程方式重试作业?

时间:2016-07-03 04:04:24

标签: laravel queue

如何检查作业是否未能完成? 如何告诉作业重新执行作业的句柄功能?
或者我如何强迫将工作视为失败的工作?

3 个答案:

答案 0 :(得分:0)

我发现代码需要无法运行(或抛出异常)才能被视为失败的作业 我只需要throw new Exception()我需要的地方 然后laravel表现为失败的工作。

答案 1 :(得分:0)

您可以在作业中实现失败的功能。

<?php

namespace App\Jobs;

.......

    public function failed(\Exception $exception)
    {
        \Log::info('job failed');
    }
}

答案 2 :(得分:0)

  

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

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

$this->release(10);

其中10是延迟时间(以秒为单位),之后应将其返回到队列。