У моего веб-приложения есть куча заданий, все хорошо работает, кроме одного.
Мне нужна эта конкретная работа, чтобы выжить в течение длительного времени, целого часа, 3600 секунд, и, если со временем произойдет сбой, и выполнить не повторять.
Я пытался настроить это свойство в моей работе
public $timeout = 3600;
public $retryAfter = 4000;
public $tries = 1;
Я получил, что после сбоя это частичное задание никогда не повторяется, и это нормально.
Но timeout и / или retryAfter игнорируются. Задание помечается как сбойное через несколько минут.
Что я делаю не так? Также, пожалуйста, в чем отличие от timeout и retryAftrer?!?
Подробнее о моем контексте
Моя очередь управляется супервизором следующим образом:
[program:projectname-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/appdemo.projectname.com/artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/appdemo.projectname.com/storage/logs/laravel_worker.log
Это предлагаемые конфигурации в соответствии с документацией Lararavel.