执行 PHP artisan queue:work 一直 processing 非正常执行处理

由于业务需求改变,需要修改之前写好的队列

在执行 php artisan queue:work 命令过程中,队列执行如下所示

执行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 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!