Laravel 4.1.25 автоматически удаляет успешные задания?

Я использую Laravel 4.1.25 с iron-io/iron_mq 1.5.1, и это моя первая попытка очереди. Согласно документации ( http://laravel.com/docs/queues), когда вы закончите обработку задания, вы должны удалить его из очереди.

Тем не менее, во время моего тестирования я заметил, что Laravel вернет любое задание в очередь Iron.io, если оно выдает исключение (задокументированное поведение), но если задание завершается успешно без исключений, оно исчезает из очереди.

Это что-то особенное для Iron.io (с использованием очереди извлечения), и будет ли мне больно, если я запустлю $job->delete() в конце, несмотря на то, что Laravel уже очищает обработанные задания?

1 ответ

Итак, немного покопавшись в исходном коде, я обнаружил, что если вы добавите public $delete = true; в класс, который содержит ваши fire() Метод, Laravel автоматически удалит выполненные задания. Это ссылка из Illuminate\Queue\Worker process()где он проверяет $job->autoDelete()после звонка $job->fire(),

В моем случае это не было установлено, и я не смог надежно воспроизвести проблему, которую пытался исправить. Я согласен только на настройку $delete, поскольку Laravel будет возвращать задание, вызывающее исключение, в очередь независимо.

Другие вопросы по тегам