没有不值得去解决的问题,也没有不值得去学习的技术!

在 Laravel 9 中,队列任务的 最大尝试次数 的验证,如最大尝试次数的默认值是多少?

前 4 次失败(FAIL 为橙色)后,还会继续尝试,直到第 5 次尝试(FAIL 为红色)后,才真正地失败。
1、在 Laravel 9 中,队列任务的最大尝试次数的默认值是多少?决定尝试验证一下,在任务类中的实现如下



	public $timeout = 10;

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        sleep(2);
        Log::info(
            'handle',
            [
                date('Y-m-d H:i:s')
            ]
        );
        sss();
    }



2、打印日志如下


[2024-05-11 05:56:47] local.INFO: handle ["2024-05-11 05:56:47"] 


3、定义任务类本身的最大尝试次数 为 1,在任务类中的实现如下。最后打印的日志与 未设置 $tries 是一样的结果。得出结论:最大尝试次数默认为 1



	public $tries = 1;
	public $timeout = 10;

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        sleep(2);
        Log::info(
            'handle',
            [
                date('Y-m-d H:i:s')
            ]
        );
        sss();
    }





[2024-05-11 06:04:02] local.INFO: handle ["2024-05-11 06:04:02"] 


4、定义任务类本身的最大尝试次数 为 0,在任务类中的实现如下。最后打印的日志有 40 余 条,说明设置为 0 时,最大尝试次数为无限次。如图1、图2
定义任务类本身的最大尝试次数 为 0,在任务类中的实现如下。最后打印的日志有 40 余 条,说明设置为 0 时,最大尝试次数为无限次。
图1
 
定义任务类本身的最大尝试次数 为 0,在任务类中的实现如下。最后打印的日志有 40 余 条,说明设置为 0 时,最大尝试次数为无限次。
图2



	public $tries = 0;
	public $timeout = 10;

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        sleep(2);
        Log::info(
            'handle0',
            [
                date('Y-m-d H:i:s')
            ]
        );
        sss();
    }



5、定义任务类本身的最大尝试次数 为 5,在任务类中的实现如下。最后打印的日志有 5 条,说明设置为 5 时,最大尝试次数为 5 次。前 4 次失败(FAIL 为橙色)后,还会继续尝试,直到第 5 次尝试(FAIL 为红色)后,才真正地失败。如图3、图4
定义任务类本身的最大尝试次数 为 5,在任务类中的实现如下。最后打印的日志有 5 条,说明设置为 5 时,最大尝试次数为 5 次。
图3
 
前 4 次失败(FAIL 为橙色)后,还会继续尝试,直到第 5 次尝试(FAIL 为红色)后,才真正地失败。
图4



	public $tries = 5;
	public $timeout = 10;

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        sleep(2);
        Log::info(
            'handle5',
            [
                date('Y-m-d H:i:s')
            ]
        );
        sss();
    }



PHP / Laravel / Yii2 老项目维护与长期技术支持

如果你的 PHP / Laravel / Yii2 项目已经上线,但遇到原开发离职、Bug 长期无人修复、接口不稳定、性能下降、代码难以接手等问题,可以联系我做一次远程技术排查。

适合以下情况:
✅ 老旧 PHP 系统无人维护
✅ Laravel / Yii2 项目 Bug 修复
✅ 后台管理系统小功能迭代
✅ RESTful API 接口排查
✅ MySQL / Redis / Nginx 性能问题
✅ 长期远程兼职维护

可先从一次小问题开始:
✅ 线上报错排查
✅ 接口异常分析
✅ 慢查询与性能瓶颈定位
✅ 代码结构初步评估
✅ 部署环境与日志检查

如需咨询,请联系我,并注明:PHP 维护咨询

联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理