我打开了bug report,因为无法使它正常工作。但是,似乎在使用queue:work
运行队列时,作业类内部指定的超时仅优先于命令行中指定的超时。
我已经对此进行了测试,可以确认它可以与queue:work
一起使用。根据我的错误报告的评论者,它与queue:listen
不兼容,因为:
queue:listen
运行多个进程,而queue:work
是单个进程。queue:listen
为运行的进程设置超时,因此,如果主进程由于某种原因被杀死,我们不会在机器上运行幻影进程。
根据Laravel文档,我应该能够指定作业特定的超时时间:
如果在作业上指定了超时,它将优先于在命令行上指定的任何超时[...]
因此,当我不使用artisan queue:listen
选项运行--timeout
并在作业中定义超时时(例如Laravel告诉我:)]
public $timeout = 600;
我希望该特定作业的超时为600秒。不幸的是,我仍然得到
ProcessTimedOutException
。仅当我使用--timeout=600
运行队列时,自定义超时才有效。我在PHP 7.4中使用Laravel 6。根据Laravel的建议,我还启用了
pcntl
PHP扩展。对于队列,我将database
驱动程序与以下配置一起使用:
'database' => [ 'driver' => 'database', 'table' => 'jobs', 'queue' => 'default', 'retry_after' => 90, ]
根据Laravel文档,我应该能够指定特定于作业的超时:如果在作业上指定了超时,则它将优先于在命令行[...]上指定的任何超时>] >
我打开了bug report,因为无法使它正常工作。但是,似乎在使用
queue:work
运行队列时,作业类内部指定的超时仅优先于命令行中指定的超时。我已经对此进行了测试,可以确认它可以与
queue:work
一起使用。根据我的错误报告的评论者,它与queue:listen
不兼容,因为:
queue:listen
运行多个进程,而queue:work
是单个进程。queue:listen
为运行的进程设置超时,因此,如果主进程由于某种原因被杀死,我们不会在机器上运行幻影进程。
我打开了bug report,因为无法使它正常工作。但是,似乎在使用queue:work
运行队列时,作业类内部指定的超时仅优先于命令行中指定的超时。
我已经对此进行了测试,可以确认它可以与queue:work
一起使用。根据我的错误报告的评论者,它与queue:listen
不兼容,因为:
queue:listen
运行多个进程,而queue:work
是单个进程。queue:listen
为运行的进程设置超时,因此,如果主进程由于某种原因被杀死,我们不会在机器上运行幻影进程。