Laravel Horizon - 作业模型中的设置,如“retryAfter”,“尝试”或“超时”不起作用
I'm running Laravel Horizon but I noticed that the setting in the Job model like public $retryAfter
or public $tries
or public $timeout
do not working (Laravel doc: https://laravel.com/docs/5.8/queues#dealing-with-failed-jobs).
For example to retry a failed Job for 4 times, the:
public $retryAfter = 4;
does not work, but works setting 'tries' => 4
in the horizon.php
config file:
'local' => [
'supervisor-1' => [
'connection' => 'redis',
'queue' => ['default'],
'balance' => 'simple',
'processes' => 3,
'tries' => 4,
],
],
Why these settings on a per-job basis do not work with Horizon and do not override general settings?
Thank you.
Ok, think I found the problem... I'm using Laravel-Horizon 5.7 that doesn't implement the $retryAfter
variable.
public $tries
works for sure. I have it in my project.
public $retryAfter
value is the number of seconds to wait before retrying the job. It does not mean the number of times to retry a job
public $timeout
value means keeping trying the job until a point in time has passed (e.g. 5 mins in the future)
You can check by setting public $tries = 1
, while having tries => 4
in horizon.php. Remember to kill your horizon process php artisan horizon:terminate
and start it again with php artisan horizon