1

我运行 sanic 应用程序,即使没有任何请求进入,它也会每隔几秒钟引发一次异常。

sanic.exceptions.RequestTimeout: Request Timeout

如何解决问题?

4

2 回答 2

1

问题来自连接仍然存在的事实。添加以下配置似乎解决了我的问题

from sanic.config import Config
Config.KEEP_ALIVE = False
于 2018-12-09T11:38:29.033 回答
1

我会向您指出文档,以便您了解自己在做什么以及为什么会收到该异常。只是一味地改成KEEP_ALIVE可能False不是你想要的。

Sanic 中的 KEEP_ALIVE 配置变量默认设置为 True。如果您的应用程序中不需要此功能,请将其设置为 False 以使所有客户端连接在发送响应后立即关闭,而不管请求上的 Keep-Alive 标头如何。

服务器保持 TCP 连接打开的时间量由服务器本身决定。在 Sanic 中,该值是使用 KEEP_ALIVE_TIMEOUT 值配置的。默认情况下,它设置为 5 秒,这与 Apache HTTP 服务器的默认设置相同,并且在允许客户端有足够的时间发送新请求和一次不保持打开太多连接之间取得了很好的平衡。不要超过 75 秒,除非您知道您的客户端使用的浏览器支持长时间保持打开的 TCP 连接。

于 2018-12-11T10:41:25.043 回答