- Создайте таблицу, используя миграцию как документированная .
php artisan queue:failed-table
php artisan migrate
- Задание не выполнено, поэтому повтор .
Это поведение задается опцией «try», которую ваш работник очереди получает в командной строке
php artisan queue:work --tries=3
... или tries
свойство конкретной работы.
<?php
namespace App\Jobs;
class Reader implements ShouldQueue
{
public $tries = 5;
}
В настоящее время вы видите, что задания повторяются 3 раза, а затем не выполняются.
Проверьте выходные данные журнала и таблицу failed_jobs
, чтобы увидеть, какие исключения были сгенерированы, и исправить их соответствующим образом.
Задание повторяется при каждом запуске метода handle
.
После нескольких повторных попыток задание будет fail
и будет вызван метод failed()
.
Отказавшие задания будут сохранены в таблице failed_jobs
для последующего использования или повторная попытка вручную .
- Также обратите внимание: есть тайм-аут и повтор после , которые необходимо установить независимо.
Значение --timeout всегда должно быть как минимум на несколько секунд короче вашего значения конфигурации retry_after. Это гарантирует, что работник, обрабатывающий заданное задание, всегда будет убит до повторного выполнения задания. Если ваш параметр --timeout превышает значение конфигурации retry_after, ваши задания могут быть обработаны дважды.
См., Истечение срока действия и время ожидания .