执行 PHP artisan queue:work 一直 processing 非正常执行处理
由于业务需求改变,需要修改之前写好的队列
在执行 php artisan queue:work 命令过程中,队列执行如下所示
队列处于一直执行的状态
在查看官方文档队列中,我看到错误处理中
如果在任务执行的时候出现异常,任务会被自动释放到队列中以再次尝试。
通过查询日志内容,是因为写的队列内部程序有报错,所以导致了队列处于一直尝试执行的状态。
解决方案:
在执行php artisan queue:work 命令时可以通过 Artisan 命令的 –tries 选项 指定最大尝试次数,以防止队列一直重复执行。
或者在队列类中添加public $tries变量定义最大尝试次数
<?php
namespace App\Jobs;
class ProcessPodcast implements ShouldQueue
{
/**
* 任务可以尝试的最大次数。
*
* @var int
*/
public $tries = 5;
}
还可以通过捕捉错误的方式,并对出错时进行相应处理
public function handle()
{
try {
//执行队列的代码
} catch (\Exception $exception) {
//产生错误时处理代码
};
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: