繁体   English   中英

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

[英]How to retry job programmatically in laravel queue?

如何检查作业是否完成?
我如何告诉作业在作业的句柄功能内重试?
或如何强制将一项工作视为失败的工作?

我发现代码需要运行失败(或引发异常)才能被视为失败的作业。
我只是在需要的地方放了一个throw new Exception()
然后,laravel将其视为失败的工作。

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

<?php

namespace App\Jobs;

.......

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

我如何告诉作业在作业的句柄功能内重试?

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

$this->release(10);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM