遗忘悠剑

🍀 记录精彩的程序人生 开始使用

laravel 队列 (调度任务) 最大重试次数配置以及单任务最大执行时间配置

首先官方文档

总结配置方法

方法一:artisan 命令,增加—tries 或者 —timeout

php artisan queue:listen --tries=3 //失败任务尝试3次
php artisan queue:listen --timeout=60 //每个任务运行最大时间不超过60秒

方法二:在 Job 控制器,任务类中加入变量定义(优先级高)

<?php
 /**
     * 任务最大尝试次数。
     *
     * @var int
     */
    public $tries = 3;
    /**
     * 任务运行的超时时间。
     *
     * @var int
     */
    public $timeout = 180;

研究这个的背景

laravel 一般默认会配置运行时间的,有的可能不会,不管会不会吧!
有的配置的太短,会导致需要很长时间才能完成的任务 永远都失败
还有的没有配置,会导致出现假死的任务 永远卡在进程里

综上,你需要合理配置 Job 的运行时间来避免这些问题。但是很多朋友可能并没有好好看手册,就不知道如何使用(比如我),这也是我发这篇文章的目的,让你很快的知道如何配置

最后加个温馨提示

也没啥,就是学会善用 laravel 内置的 tinker,命令行下运行

php artisan tinker
Psy Shell v0.7.2 (PHP 7.3.7  cli) by Justin Hileman
$id = App\Models\Info::find(1);$obj = new App\Jobs\Info\UpdatetimeJob($id);$obj->handle();
//这样我们就可以简单执行这个job啦~开发调错就比较简单

🐶 你走,我不送你。你来,风雨无阻,我去接你。

评论
留下你的脚步
推荐阅读