очередь: задержка работы между неудачными заданиями

#laravel #queue #beanstalkd

#laravel #очередь #бобовый стебель

Вопрос:

Я использую Laravel 5.2

Как я могу определить задержку в секундах для повторных попыток при неудачных заданиях? То есть, если задание завершается неудачно и мой параметр —tries настроен на 3, между каждой из этих 3 попыток должна быть задержка в 10 секунд.

Моя текущая конфигурация такова:

 command=php /home/forge/default/artisan queue:work beanstalkd --daemon --timeout=60 --sleep=10 --quiet --tries=3 --delay=10 --queue="default"

autostart=true
autorestart=true
user=forge
redirect_stderr=true
stdout_logfile=/home/forge/.forge/worker-41417.log
 

Как вы можете видеть, у меня уже есть —delay=10, но он не работает. Неудачные попытки выполнения заданий выполняются одна за другой.

Есть какие-нибудь идеи? Спасибо.

Ответ №1:

Вы можете вручную освободить его, что описано в документации 5.2:

 public function handle(Mailer $mailer)
{
    if (condition) {
        $this->release(10);
    }
}