Gunicorn: Gunicorn v 19 donne un délai d'attente pour Flask http get request qui prend du temps à s'exécuter

Créé le 27 avr. 2019  ·  4Commentaires  ·  Source: benoitc/gunicorn

Version utilisant : 19.7
Commande Docker pour démarrer le serveur :
CMD ["gunicorn", "--workers=2", "-b 0.0.0.0:8080","--keep-alive=900","--threads=3","--max-requests=5 ","--graceful-timeout=900", "--log-level=DEBUG","executorengine.wsgi :app "]

Détails de l'erreur :
Thread de travail de délai d'expiration critique



502 Mauvaise passerelle


Le serveur a renvoyé une réponse invalide ou incomplète.

Journaux de cosol

NFO:root :DONE: : Exécute l'opération d'étape avec les détails ::

| INFO:root :Start:: Méthode Rest GET invoquée sur un système externe

Avant l'action complète ci-dessous, un nouveau travailleur arrive :)

| [2019-04-27 10:11:00 +0000] [17] [INFO] Booter worker avec pid : 17

Commentaire le plus utile

Si quelqu'un rencontre le même problème, veuillez utiliser la configuration ci-dessous

**

  • [ ] CMD ["gunicorn", "--workers=2", "-b 0.0.0.0:8080","--timeout=400","--threads=2", "-k=gevent"," --log-level=INFO","

**

moteur d'exécution. wsgi:app "]

Tous les 4 commentaires

Si je comprends bien, vous dites que vous avez une requête HTTP entrante vers Gunicorn. Lorsque vous traitez cette demande, vous faites à votre tour une demande HTTP à un système externe, et cette demande prend suffisamment de temps pour que votre travailleur expire (le système externe ne répond pas avant que votre travailleur n'expire).

Si c'est ce qui se passe, alors je peux penser à deux options :

1) Augmentez le délai d'expiration de votre travailleur
2) Utilisez un travailleur asynchrone, comme gevent afin que votre demande externe ne provoque pas de délai d'expiration du travailleur.

@ vaibhavpatil123 pouvez-vous éventuellement essayer le maître également puisque cf8ac37ce41e530cc154f2c7cbccd84ccad4c242 a été fusionné.

Faites le nous savoir

Enfin, je suis en mesure de résoudre mon problème et maintenant ma demande passe par le serveur Flask avec la configuration ci-dessous.

CMD ["gunicorn", "--workers=2", "-b 0.0.0.0:8080"," --timeout=400","--threads=2", "-k=gevent" ,"-- log-level=INFO","executorengine.wsgi :app "]

Si quelqu'un rencontre le même problème, veuillez utiliser la configuration ci-dessous

**

  • [ ] CMD ["gunicorn", "--workers=2", "-b 0.0.0.0:8080","--timeout=400","--threads=2", "-k=gevent"," --log-level=INFO","

**

moteur d'exécution. wsgi:app "]

Cette page vous a été utile?
0 / 5 - 0 notes