Laravel Horizon - настройки в модели задания, такие как «retryAfter», «попытки» или «тайм-аут», не работают - PullRequest
0 голосов
/ 06 июня 2019

Я использую Laravel Horizon, но заметил, что настройки в модели Job, такие как public $retryAfter или public $tries или public $timeout, не работают (Laravel doc: 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 и не переопределяют общие настройки?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

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

0 голосов
/ 07 июня 2019

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

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

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

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

...