【发布时间】:2020-08-04 12:43:06
【问题描述】:
我想中止对 API 的请求,该请求耗时超过 5 秒。我知道客户端代码可以有 5 秒的超时,这将确保它不会等待更长的时间来获得响应,但是即使客户端不会,Django 服务器仍然会处理请求最后收到。 据我所知,即使我在 nginx 或 gunicorn 上配置它,它们仍将充当 Django 服务器应用程序的客户端,并且会出现同样的问题 - nginx 不会等待超过 5 秒,但 Django 将继续处理请求。
有什么方法可以在 Django(应用程序服务器代码级别)本身中以某种方式中止此请求处理?
有关特定用例的上下文: 此 API 解析文件,我们对该文件的大小限制为 5 MB。即使这样,由于某种原因,有时文件解析需要超过 20-30 秒,这就是为什么我们要在超过某个阈值时中止对该 API 的请求。
【问题讨论】:
标签: django django-rest-framework timeout django-1.11