Ошибка таймаута процесса очереди Laravel

Я использую Laravel php artisan queue:listen запускать очереди работ. Одно из этих заданий довольно сложное и занимает много времени, поэтому я получаю следующую ошибку:

[Symfony\Component\Process\Exception\ProcessTimedOutException]
The process ""/usr/local/Cellar/php55/5.5.14/bin/php" artisan queue:work
--queue="QUEUE_URL" --delay=0 --memory=128 --sleep=3 --tries=0"exceeded the timeout of 60 seconds.

Я знаю, что я мог бежать queue:listen с произвольно высоким значением времени ожидания, но это не идеально, как я делать хотите, чтобы тайм-аут в случае, если какой-то процесс на самом деле unreseponsive. Я пытался регулярно звонить set_time_limit(60) в функции, вызываемой заданием, но это не решило мою проблему.

Я нашел нить онлайн с упоминанием Symfony\Component\Process\Process->setTimeout(null), но я не знаю, как получить доступ к этому объекту процесса, или если это даже решит проблему.

Любая помощь приветствуется.

29

Решение

Добавление --timeout=0 работал для моей установки.

ОБНОВИТЬ:
Поэтому вся команда будет php artisan queue:listen --timeout=0,

Надеюсь это поможет.

51

Другие решения

Это известный ошибка в Laravel v5.3:

Вы должны обновить до v5.5, чтобы исправить эту проблему.

Другой способ — взлом исходного кода, как объяснено. Вот

1

По вопросам рекламы [email protected]