我对如何只运行一次作业有点困惑,因为当我将参数“tries”设置为 1 并且作业失败时,它会再次执行一次。如果我将 attempts 参数设置为 3,则作业运行 4 次。最后,如果我设置为 0,作业将无限期运行。下面是我在 config/horizon.php 中的设置:
'production' =
'default' => [
'connection' => 'redis',
'queue' => [
'default',
'notifications',
'dom'
],
'balance' => 'auto',
'maxProcesses' => env('MAX_PROCESSES', 45),
'timeout' => 60,
'tries' => 1,
],
],
下面是我在 config/queue.php 中的设置
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
'retry_after' => 90,
],
还有其他问题,什么设置会发送“已尝试多次或运行得太快”?
最佳答案
只需为作业设置一个属性$tries = 1
,并在捕获可能的错误时调用$this->fail()
;
关于php - Laravel Horizon 中只执行一次作业的设置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47845332/