Подтвердить что ты не робот

Ошибка тайм-аута очереди очереди 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 со сколь угодно большим значением тайм-аута, но это не идеально, поскольку я хочу, чтобы он тайминг в том случае, если какой-то процесс на самом деле не реагирует. Я пробовал регулярно называть set_time_limit(60) внутри функции, вызванной заданием, но это не помогло решить мою проблему.

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

Любая помощь будет высоко оценена.

4b9b3361

Ответ 1

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

UPDATE: Таким образом, вся команда будет php artisan queue:listen --timeout=0.

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

Ответ 2

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

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

Другой способ - взломать исходный код, как описано здесь