【发布时间】:2020-05-10 13:53:40
【问题描述】:
根据 Laravel 文档,我应该能够指定作业特定的超时:
如果在作业中指定了超时,它将优先于在命令行中指定的任何超时 [...]
所以,当我在没有 --timeout 选项的情况下运行 artisan queue:listen 并在作业中定义超时时(就像 Laravel 告诉我的那样):
public $timeout = 600;
我预计该特定作业的超时时间为 600 秒。不幸的是,我仍然收到ProcessTimedOutException。自定义超时仅在我使用 --timeout=600 运行队列时才有效。
我正在使用 Laravel 6 和 PHP 7.4。根据 Laravel 的建议,我还启用了 pcntl PHP 扩展。对于队列,我使用带有以下配置的database 驱动程序:
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
'retry_after' => 90,
]
【问题讨论】: