web-dev-qa-db-fra.com

Laravel erreur d'expiration du processus de file d'attente

Je suis sur Laravel utilisant php artisan queue:listen Pour exécuter des tâches en file d'attente. L'une de ces tâches est assez impliquée et prend beaucoup de temps, et donc j'obtiens l'erreur suivante:

[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.

Je sais que je pourrais exécuter queue:listen Avec une valeur de timeout arbitrairement élevée, mais ce n'est pas idéal, car je fais veux qu'il expire dans le cas où un processus est en fait non réactif. J'ai essayé d'appeler régulièrement set_time_limit(60) dans la fonction appelée par le job, mais cela n'a pas résolu mon problème.

J'ai trouvé un fil en ligne mentionnant Symfony\Component\Process\Process->setTimeout(null), mais je ne sais pas comment accéder à cet objet de processus, ou si cela pourrait même résoudre le problème.

Toute aide serait très appréciée.

34
Will Durney

Ajouter --timeout=0 a travaillé pour mon installation.

PDATE: La commande entière serait donc php artisan queue:listen --timeout=0.

J'espère que cela t'aides.

57
David Lemayian

Ceci est connu bug in Laravel v5.3:

Vous devez mettre à niveau vers la version 5.5 pour résoudre ce problème.

Une autre façon est de pirater le code source comme expliqué ici

0
Mostafa Lavaei