Gunicorn: Gunicorn v 19 dá tempo limite para Flask http get request que demora para executar

Criado em 27 abr. 2019  ·  4Comentários  ·  Fonte: benoitc/gunicorn

Versão usando: 19.7
Comando do Docker para iniciar o servidor:
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 "]

Detalhes do erro :
Tópico de trabalho de tempo limite crítico



502 Bad Gateway


O servidor retornou uma resposta inválida ou incompleta.

Registros do console

NFO:root :DONE:: Executa a operação da etapa com detalhes ::

| INFO:root :Start:: Resto do método GET invocado no sistema externo

Antes da ação completa abaixo novo trabalhador chegando :)

| [2019-04-27 10:11:00 +0000] [17] [INFO] Inicializando o trabalhador com pid: 17

Comentários muito úteis

Se alguém estiver enfrentando o mesmo problema, use a configuração abaixo

**

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

**

motor executor. wsgi:app "]

Todos 4 comentários

Se bem entendi, você está dizendo que recebeu uma solicitação HTTP para Gunicorn. Ao lidar com essa solicitação, você, por sua vez, faz uma solicitação HTTP para um sistema externo, e essa solicitação demora o suficiente para que seu trabalhador expire (o sistema externo não responde antes que seu trabalhador expire).

Se é isso que está acontecendo, posso pensar em duas opções:

1) Aumente o tempo limite do seu trabalhador
2) Use um trabalhador assíncrono, como gevent, para que sua solicitação externa não cause um tempo limite de trabalho.

@vaibhavpatil123 você pode eventualmente tentar o mestre também, já que cf8ac37ce41e530cc154f2c7cbccd84ccad4c242 foi mesclado.

Nos informe

Finalmente, consigo corrigir meu problema e agora minha solicitação está passando pelo servidor Flask com a configuração abaixo.

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

Se alguém estiver enfrentando o mesmo problema, use a configuração abaixo

**

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

**

motor executor. wsgi:app "]

Esta página foi útil?
0 / 5 - 0 avaliações