@apokin
Веб-разработчик

Как исправить проблему с timeout очереди в laravel?

Реализовал парсер работает около суток. Пишет лог выполнения в бд. Все выполняется нормально. Процесс идет не прерывается.
Реализовано уведомление об ошибках на почту.
Может есть максимальное значение для времени выполнения?
Порядком надоела следующая ошибка. Причем очередь не прерывает выполнение.
Задача стартанула 2017-08-06 03:07:13, а в 4:05 пришла ошибка.

local.ERROR: Illuminate\Queue\MaxAttemptsExceededException: A queued job has been attempted too many times. The job may have previously timed out. in /var/www/html/***/vendor/laravel/framework/src/Illuminate/Queue/Worker.php:383

В env нет настроек
работает через supervisor
Конфиг в supervisor
[program:***]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/***/artisan queue:work --tries=1 --memory=2000 --timeout=172800 --queue=test,parser,sitemap,yml,mail
autostart=true
autorestart=true
user=saitdarom 
numprocs=5
redirect_stderr=true
stdout_logfile=/var/log/supervisor/***.log


Конфиг в queue.php
'database' => [
            'driver' => 'database',
            'table' => 'jobs',
            'queue' => 'default',
            'retry_after' => 172800,
        ],
  • Вопрос задан
  • 2620 просмотров
Решения вопроса 1
@apokin Автор вопроса
Веб-разработчик
Это я просмотрел. Указал не все классы в задании при переносе с версии 5.2 на версию 5.4
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@BoRzZoY
Нужно разобраться из-за чего идет повторная попытка вызова и грамотно обработать.
В качестве "временного" решения можно отсеивать попытки повторного выполнения так
if ($this->attempts() > 1) {
  return 1;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы