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 и не переопределяют общие настройки?

Спасибо.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
2 401
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

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

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

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

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

vlauciani 07.06.2019 09:31
Ответ принят как подходящий

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

Другие вопросы по теме