Php Laravel队列未遵守作业特定超时

Php Laravel队列未遵守作业特定超时,php,laravel,queue,jobs,Php,Laravel,Queue,Jobs,根据Laravel文档,我应该能够指定特定于作业的超时: 如果在作业上指定了超时,则它将优先于在命令行[…]上指定的任何超时 因此,当我运行artisan queue:listen而不使用--timeout选项时,我会在作业中定义超时(就像Laravel告诉我的那样): 我预计该特定作业的超时时间为600秒。不幸的是,我仍然收到一个ProcessTimedOutException。自定义超时仅在使用--timeout=600运行队列时有效 我在PHP7.4中使用Laravel6。根据Larave

根据Laravel文档,我应该能够指定特定于作业的超时:

如果在作业上指定了超时,则它将优先于在命令行[…]上指定的任何超时

因此,当我运行
artisan queue:listen
而不使用
--timeout
选项时,我会在作业中定义超时(就像Laravel告诉我的那样):

我预计该特定作业的超时时间为600秒。不幸的是,我仍然收到一个
ProcessTimedOutException
。自定义超时仅在使用
--timeout=600运行队列时有效

我在PHP7.4中使用Laravel6。根据Laravel的建议,我还启用了
pcntl
PHP扩展。对于队列,我使用具有以下配置的
数据库
驱动程序:

'database' => [
    'driver' => 'database',
    'table' => 'jobs',
    'queue' => 'default',
    'retry_after' => 90,
]
我开了一家银行,因为我无法让它运作。但是,在使用
queue:work
运行队列时,作业类中指定的超时似乎仅优先于命令行中指定的超时

我已经对此进行了测试,可以确认它可以与
queue:work
一起使用。根据我的bug报告中的一位评论员的说法,它不适用于
queue:listen
,因为:

queue:listen
运行多个进程,而
queue:work
是单个进程<代码>队列:侦听
为它运行的进程设置超时,以便在主进程因某种原因被终止的情况下,我们不会让重影进程在机器上运行


queue.php文件中队列的配置设置是什么?如果将
retry\u之后的
更改为
610
,会发生什么情况?答案在Laravel的官方文档中,就在链接的开头--命令行的超时也存在。我想在作业类中设置超时,而不是在命令行中设置超时。根据第节最后几段,这应该是可能的。在命令行中设置超时将为所有作业设置超时。
'database' => [
    'driver' => 'database',
    'table' => 'jobs',
    'queue' => 'default',
    'retry_after' => 90,
]