laravel任务类设置了timeout,为什么超时后还继续运行?

[2022-08-24 17:21:43][KKukoYK10fHSU3lrkuP0PkDYKRCdEVxs] Processing: Modules\Gas\Jobs\StationAllPushJob
[2022-08-24 17:21:48][KKukoYK10fHSU3lrkuP0PkDYKRCdEVxs] Processed:  Modules\Gas\Jobs\StationAllPushJob
[2022-08-24 17:23:17][3Q3LE5Zaqbj4VpdBwexTKXdMIHSIBBNI] Processing: Modules\Gas\Jobs\StationAllPushJob
[2022-08-24 17:23:27][3Q3LE5Zaqbj4VpdBwexTKXdMIHSIBBNI] Processed:  Modules\Gas\Jobs\StationAllPushJob
[2022-08-24 17:23:34][oxvXIc755wyBqIxgJ3xbUmtsDclCHMPD] Processing: Modules\Gas\Jobs\StationAllPushJob
[2022-08-24 17:23:44][oxvXIc755wyBqIxgJ3xbUmtsDclCHMPD] Processed:  Modules\Gas\Jobs\StationAllPushJob
<?php

class CheYouXiStationAllPushJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public $timeout = 3;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct(string $user_token)
    {

    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        sleep(10);
    }
}
让PHP再次伟大
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

2022-08-25更新

没注意文档有这个注释

注意:必须安装 pcntl PHP 扩展以指定任务超时。

2022-08-24更新

翻译的文档不全啊!sleep()应该是IO阻塞,所以不算超时,不知道我的理解对不对,如果我理解错误请帮我指出来!但是这个解释也有点牵强,因为命令行设置了–timeout=3就可以正确的超时
file

顺便问一下,如果线上用Supervisor,超时后是可以正常重启的吧?

1年前 评论
讨论数量: 3

超时会导致重试 可以考虑配置重试失败最大重试次数标记队列失败

1年前 评论
勇敢的心 (楼主) 1年前

2022-08-25更新

没注意文档有这个注释

注意:必须安装 pcntl PHP 扩展以指定任务超时。

2022-08-24更新

翻译的文档不全啊!sleep()应该是IO阻塞,所以不算超时,不知道我的理解对不对,如果我理解错误请帮我指出来!但是这个解释也有点牵强,因为命令行设置了–timeout=3就可以正确的超时
file

顺便问一下,如果线上用Supervisor,超时后是可以正常重启的吧?

1年前 评论

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