0

我已经使用 Databse 连接在 L5 中设置了队列系统,运行迁移后,我的数据库 failed_jobs 和作业中有两个表。到目前为止一切正常,但是当推送操作失败时,它会继续尝试处理操作,并且没有删除失败的作业或插入 failed_jobs

 Queue::push(function($job) use ($id)
 {
     Account::delete($id);

     $job->delete();
 });

在上面的示例中,如果不成功,我如何设置尝试尝试的次数,然后插入 failed_jobs。

我知道这可以使用

php artisan queue:listen --tries=3

但是我想要使用闭包,因为我有不同的情况

4

2 回答 2

1

您可以定义作业类本身的最大尝试次数。

如果在作业上指定了最大尝试次数,它将优先于命令行中提供的值。

将此添加到您的工作类别:

/**
* The number of times the job may be attempted.
*
* @var int
*/

public $tries = 5;
于 2019-05-29T23:35:16.233 回答
0

您可以检查尝试次数:

   if ($job->attempts() > 3)
{
    //
}

此处的文档中明确提到了这一点。

于 2015-11-26T12:45:07.180 回答