执行 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 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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