Laravel Horizon - настройки в модели задания, такие как retryAfter, попытки или тайм-аут, не работают

Я использую Laravel Horizon, но заметил, что настройки в модели Job, такие как public $retryAfter, public $tries или public $timeout, не работают (документ Laravel: https://laravel.com/docs/5.8/queues#dealing-with-failed-jobs).

Например, чтобы повторить неудачное задание 4 раза:

public $retryAfter = 4;

не работает, но работает установка 'tries' => 4 в файле конфигурации horizon.php:

        'local' => [
            'supervisor-1' => [
                'connection' => 'redis',
                'queue' => ['default'],
                'balance' => 'simple',
                'processes' => 3,
                'tries' => 4,
            ],
        ],

Почему эти настройки для отдельных заданий не работают с Horizon и не отменяют общие настройки?

Спасибо.


person vlauciani    schedule 06.06.2019    source источник


Ответы (2)


public $tries точно работает. Он есть у меня в проекте.

public $retryAfter значение - это количество секунд ожидания перед повторной попыткой выполнения задания. Это не означает количество повторных попыток выполнения задания.

Значение public $timeout означает продолжение попыток выполнения задания до тех пор, пока не пройдет определенный момент времени (например, 5 минут в будущем)

Вы можете проверить, установив public $tries = 1, имея tries => 4 в горизонте .php. Не забудьте убить свой процесс горизонта php artisan horizon:terminate и начать его снова с php artisan horizon

person Michael Nguyen    schedule 06.06.2019
comment
Хорошо, public $tries работает, извините за вопрос ... но public $retryAfter нет. Он должен переопределить (если я правильно понимаю) 'delay' => 0, в horizon.php файле конфигурации. Это правда? Теперь с public $tries = 5; задание повторяется 5 раз, но без ожидания значения $retryAfter. - person vlauciani; 07.06.2019

Хорошо, думаю, я нашел проблему ... Я использую Laravel-Horizon 5.7, который не реализует переменную $retryAfter.

person vlauciani    schedule 07.06.2019