跳转到主要内容

Django中间件类,用于快速处理在队列中等待过长的请求

项目描述

Django-Request-Queue-Timeout

此软件包提供Django中间件类,用于快速处理在队列中等待过长的请求。

这在像Heroku这样的环境中很有用,因为流量激增可能导致请求在Heroku路由器强制放弃请求之前长时间停留在队列中(Heroku路由器强制执行的30秒限制)。使用此中间件后,应用程序通过不处理客户端已收到服务器错误响应的请求来快速恢复。

要求

Python和Django的最新版本。有关确切版本,请参阅pyproject.toml

安装

从git安装

pip install git+<git address>#egg=django-request-queue-timeout

PyPI安装

pip install django-request-queue-timeout

将中间件添加到设置文件中的MIDDLEWARE列表的第一项

MIDDLEWARE = (
    'rqto.middleware.RequestQueueTimeoutMiddleware'
    ...
)

配置

安装后,中间件会检查每个传入请求的X-REQUEST-START值,指示请求开始的时间(自Unix纪元以来的毫秒数)。如果请求在处理前等待时间过长,则生成503服务不可用响应。

默认超时时间为30秒,但可以通过提供Django设置来配置不同的值

REQUEST_QUEUE_TIMEOUT_IN_SECONDS = 60  # configure a 60 second request queue timeout

另请参阅

项目详情


下载文件

下载适用于您平台文件的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分布

django-request-queue-timeout-1.0.3.tar.gz (3.6 kB 查看散列)

上传时间

构建分布

django_request_queue_timeout-1.0.3-py3-none-any.whl (4.6 kB 查看散列)

上传时间 Python 3

支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页面