Какие настройки позволяют выполнять задание только один раз в Laravel Horizon?

Я немного запутался в том, как запустить задание только один раз, потому что, когда я устанавливаю параметр «пытается» равным 1 и задание не выполняется, оно выполняется еще раз. Если я установлю для параметра попыток значение 3, задание будет выполнено 4 раза. И, наконец, если я установлю значение 0, задания будут выполняться бесконечно. Ниже моих настроек в config / horizon.php:

'production' =
    'default' => [
            'connection'   => 'redis',
            'queue'        => [
                'default',
                'notifications',
                'dom'
            ],
            'balance'      => 'auto',
            'maxProcesses' => env('MAX_PROCESSES', 45),
            'timeout'      => 60,
            'tries'        => 1,
        ],
    ],

И ниже мои настройки в config / queue.php

'redis' => [
        'driver'      => 'redis',
        'connection'  => 'default',
        'queue'       => 'default',
        'retry_after' => 90,
    ],

И другой вопрос, какая настройка отправки "предпринималась много раз или слишком долго"?


person Bruno Tomé    schedule 16.12.2017    source источник
comment
Работа терпит неудачу или срок ожидания истекает?   -  person Mathew Tinsley    schedule 16.12.2017
comment
Проблема с повторяющимися работами только тогда, когда работа терпит неудачу. Другой вопрос о том, что это любопытство, задавали много раз.   -  person Bruno Tomé    schedule 16.12.2017
comment
Любая идея, которая поможет мне решить эту проблему @mtinsley?   -  person Bruno Tomé    schedule 17.12.2017


Ответы (1)


Просто установите атрибут $tries = 1 для Job, и при обнаружении возможных ошибок вызовите $this->fail();

person Bruno Tomé    schedule 17.07.2018