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);
    }
}
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

2022-08-25 更新

没注意文档有这个注释

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

2022-08-24 更新

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

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

2年前 评论
讨论数量: 3

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

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

2022-08-25 更新

没注意文档有这个注释

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

2022-08-24 更新

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

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

2年前 评论