gpt4 book ai didi

python - 当我在 gunicorn 中为 Django 应用程序设置 worker 超时时,其他用户无法访问该应用程序

转载 作者:行者123 更新时间:2023-12-05 05:51:13 27 4
gpt4 key购买 nike

我有一个在 Gunicorn 和 Nginx 上运行的 Django 应用程序。应用程序中有一个请求需要 10 分钟才能加载页面 [有大量数据要处理],我已将 Gunicorn 的工作时间增加到 1200 秒,以使其有足够的时间加载页面。它工作正常,但在该请求得到处理之前,其他用户无法访问该应用程序:

504 网关超时nginx/1.21.4

这是我的 DOCKER

version: '3.8'

services:
web:
volumes:
- static:/static
command: python manage.py makemigrations /
&& python manage.py migrate && python manage.py collectstatic --noinput/
&& python manage.py crontab add /
&& exec gunicorn DrDNAC.wsgi:application --bind 0.0.0.0:8000 --timeout 1200"
build:
context: .
ports:
- "8000:8000"
depends_on:
- db
db:
image: postgres:13.0-alpine
nginx:
build: ./nginx
volumes:
- static:/static
ports:
- "80:80"
depends_on:
- web

volumes:
postgres_data:
static:

这是 nginx:

upstream app {
server web:8000;
}

server {
listen 80;

location / {
proxy_pass https://app;
proxy_connect_timeout 75s;
proxy_read_timeout 300s;
}
location /static/ {
alias /static/;
}

}

最佳答案

这可能是因为 worker 数量不够。

尝试通过将 --workers=4 添加到 gunicorn 调用来增加数量。

gunicorn DrDNAC.wsgi:application --workers=4 --bind 0.0.0.0:8000 --timeout 1200

您可以在以下链接下找到更多信息: https://docs.gunicorn.org/en/stable/settings.html#worker-processes

此外,您还可以使用 --threads 4

增加线程数量

关于python - 当我在 gunicorn 中为 Django 应用程序设置 worker 超时时,其他用户无法访问该应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70419394/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com