Iron IO игнорирует ограничение времени повтора (Laravel + Iron IO)
Я использую push-очереди Iron IO с Laravel 4.1, чтобы поставить в очередь задание, выполнение которого занимает много времени (4-5 минут). Моя проблема в том, что Iron IO пытается выполнить задание еще до его завершения (т. Е. Задание выполняется так долго, что Iron IO думает, что оно не удалось, и повторяет его).
Попытки решения:
Iron IO имеет настройки в своих очередях push для того, когда следует повторить задание. У меня установлено значение 1 повтор (минимально допустимое) с временем ожидания повторения 500 секунд (что более чем достаточно для завершения задания). ОДНАКО, Iron продолжает повторять задание только через 60 секунд (что является временем повтора по умолчанию), игнорируя его текущую настройку 500 секунд.
Я пытался использовать $job->delete() и $ job-> попытки () в моем работнике, чтобы сообщить Железу, что работа завершена, но ни одна из них не сработала. Мой рабочий код ниже.
class Worker { public function fire($job, $data) { if( $job->attempts() > 1 ) { $job->delete(); } else { // perform job that takes 4-5 minutes } } }
Раньше у меня было просто
class Worker { public function fire($job, $data) { $job->delete(); // perform job that takes 4-5 minutes } }
Но это тоже не сработало.
По сути, я хочу, чтобы Iron IO подождал 10 минут, прежде чем пытаться повторить задание, но не смог бы быть счастлив, если бы он просто никогда не повторил попытку.