如何检查作业是否未完成?
我如何告诉作业在作业的handle函数内重试?
或者我怎样才能强迫别人认为一份工作是失败的?
我发现代码需要运行失败(或抛出异常)才能被认为是失败的作业。
我只是在需要的地方放了一个throw new Exception()
。
然后laravel将其视为失败的作业。
您可以在Job中实现失败的函数。
<?php
namespace AppJobs;
.......
public function failed(Exception $exception)
{
Log::info('job failed');
}
}
如何告诉job重试job的handle函数?
不确定是否适用于其他连接类型,但如果你正在使用Redis,作业可以通过命令从handle()体释放回队列:
$this->release(10);
其中10为以秒为单位的延迟时间,在此之后应该返回到队列