Я использую 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)
, но я не знаю, как получить доступ к этому объекту процесса, или если это даже решит проблему.
Любая помощь приветствуется.
Добавление --timeout=0
работал для моей установки.
ОБНОВИТЬ:
Поэтому вся команда будет php artisan queue:listen --timeout=0
,
Надеюсь это поможет.