Laravel Horizo​​n-1名工人一次处理多个工作

问题描述

我有一个Laravel Horizo​​n主管配置,可以维护一个进程。但是,我无法让此过程一次只运行一项工作。的配置

'long-running-supervisor' => [
       'connection' => 'redis-long-running','queue' => ['default_long'],'balance' => 'simple','processes' => 1,'tries' => 1,'timeout' => 720
 ],

但是,这个default_long进程同时重叠了多个作业,而不是等待一个作业完成才开始另一个作业。

Horizo​​n输出(为简洁起见进行了编辑)

WaistPredictionJob 8039
Queue: default_long | Tags: App\Prediction:620  2020-10-17 19:49:45     29.20s  

WaistPredictionJob 8049
Queue: default_long | Tags: App\Prediction:621  2020-10-17 19:50:11     29.08s

PredictionCompleted 8051
Queue: default | Tags: App\Prediction:620   2020-10-17 19:50:16     0.03s

WaistPredictionJob 8054
Queue: default_long | Tags: App\Prediction:622  2020-10-17 19:50:17     25.77s  

PredictionCompleted 8064
Queue: default | Tags: App\Prediction:621   2020-10-17 19:50:46     0.16s

PredictionCompleted 8074
Queue: default | Tags: App\Prediction:622   2020-10-17 19:51:11     0.03s

解决方法

我知道了。

我错误地认为时间戳记是作业完成的时间,而实际上它们代表了作业何时排队。

如果查看PredictionCompleted作业的时间戳,您会注意到WaistPrediciton作业实际上是一个接一个地运行。