在pyramid/gunicorn中覆盖请求超时



Pyramid(v1.5)应用程序,由英雄级BeagleBone Black"服务器"上的nginx背后的gunicorn(v19.1.1)提供服务。

一个特定的请求需要大量的I/O和服务器上的处理器时间(从数据库导出数据、格式化为xls并提供服务)导致gunicorn worker超时,nginx返回"Bad gateway"错误。

是否有一种实用的方法来处理每个请求的,而不是增加所有请求的全局请求超时?这只是一个特定的请求,所以我正在寻找最快、最脏的解决方案,而不是实现正确的异步客户端通知协议。

来自文档:

timeout¶

-t INT, --timeout INT
30

沉默超过这几秒的工人被杀死并重新启动。

通常设置为30秒。只有在您确信同步工作人员会受到影响的情况下,才能将其设置得明显更高。对于非同步工作进程来说,这只是意味着工作进程仍在通信,并且与处理单个请求所需的时间长度无关。graceful_timeout

--graceful-timeout INT
30

正常工作人员重新启动超时。

通常设置为30秒。工人在收到重启信号后如何处理请求的最长时间。如果时间到了,工人将被强制杀害。保活

--keep-alive INT
2

在Keep Alive连接上等待请求的秒数。

通常设置在1-5秒的范围内。

最新更新