0
votes

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.

2

2 Answers

0
votes

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

0
votes

Ok, think I found the problem... I'm using Laravel-Horizon 5.7 that doesn't implement the $retryAfter variable.