Gunicorn: Gunicorn v 19 为需要时间执行的 Flask http get 请求提供超时

创建于 2019-04-27  ·  4评论  ·  资料来源: benoitc/gunicorn

使用版本:19.7
启动服务器的 Docker 命令:
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 "]

错误详情 :
严重超时工作线程



502错误的网关


服务器返回无效或不完整的响应。

控制台原木

NFO:root :DONE:: 执行带有详细信息的步骤操作::

| INFO:root :Start:: 在外部系统上调用的 Rest GET 方法

在新工人到来之前完成行动之前:)

| [2019-04-27 10:11:00 +0000] [17] [INFO] 使用 pid 引导工作人员:17

最有用的评论

如果有人面临同样的问题,请使用以下配置

**

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

**

执行引擎。 wsgi:应用程序“]

所有4条评论

如果我理解正确,您是说您有一个对 Gunicorn 的传入 HTTP 请求。 当您处理该请求时,您又向外部系统发出 HTTP 请求,并且该请求花费的时间足够长,以至于您的工作人员超时(外部系统在您的工作人员超时之前没有响应)。

如果这是正在发生的事情,那么我可以想到两个选择:

1)增加你的工人超时
2) 使用异步工作者,例如 gevent ,以便您的外部请求不会导致工作者超时。

@vaibhavpatil123自从 cf8ac37ce41e530cc154f2c7cbccd84ccad4c242 已合并以来,您最终是否也可以尝试使用大师。

让我们知道

最后我能够解决我的问题,现在我的请求通过具有以下配置的 Flask 服务器。

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

如果有人面临同样的问题,请使用以下配置

**

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

**

执行引擎。 wsgi:应用程序“]

此页面是否有帮助?
0 / 5 - 0 等级