加入收藏 | 设为首页 | 会员中心 | 我要投稿 商洛站长网 (https://www.0914zz.com/)- AI应用、CDN、边缘计算、云计算、物联网!
当前位置: 首页 > 运营中心 > Nginx > 正文

django-与gunicorn nginx长期运行的请求

发布时间:2021-01-11 10:36:57 所属栏目:Nginx 来源:互联网
导读:我为Django驱动的应用程序集成了一个集成服务器.其中一些功能仍处于试验阶段,导致请求时间过长.我暂时可以接受糟糕的表现,但是我需要能够集成.每当我们使用导致较长请求的功能时,该应用程序就会挂起(按预期方式),然后可能在一分半钟后返回“ 502-错误的网关”

我为Django驱动的应用程序集成了一个集成服务器.其中一些功能仍处于试验阶段,导致请求时间过长.

我暂时可以接受糟糕的表现,但是我需要能够集成.每当我们使用导致较长请求的功能时,该应用程序就会挂起(按预期方式),然后可能在一分半钟后返回“ 502-错误的网关”.该应用程序的其余部分工作正常.

我检查了古尼康日志,每当发生这种情况时,我都会收到一条类似

2012-01-20 17:30:13 [23128] [DEBUG] GET /results/
2012-01-20 17:30:43 [23125] [ERROR] WORKER TIMEOUT (pid:23128)
Traceback (most recent call last):
  File "/home/demo/python_envs/frontend/lib/python2.6/site-packages/gunicorn/app/base.py",line 111,in run
    os.setpgrp()
OSError: [Errno 1] Operation not permitted

但是,这是在实际的工人超时之前发生的,我已经确定为10分钟.这是运行gunicorn的暴发户脚本的一部分.

description "..."

start on runlevel [2345]
stop on runlevel [!2345]
#Send KILL after 5 seconds
kill timeout 5
respawn

env VENV="/path/to/a/virtual/env/"

#how to know the pid
pid file $VENV/run/guniconr-8080.pid

script
exec sudo -u demo $VENV/bin/gunicorn_django --preload --daemon -w 4 -t 600 --log-level debug --log-file $VENV/run/gunicorn-8080.log -p $VENV/run/gunicorn-8080.pid -b localhost:8080 /path/to/settings.py
end script

我正在运行0.13.4版的gunicorn.任何帮助将不胜感激.

这个问题是cross-post from ServerFault. 最佳答案 您是否直接连接至gunicorn?还是两者之间存在ngnix?如果我没记错的话,nginx中大约有90秒的超时.

顺便说一句,对于这种表现不佳的请求,通常有两种解决方案:

>缓存结果并获得cron作业以调用自定义django管理命令,该命令将进行计算并填充缓存.
>像celery这样的异步任务队列会进行实际计算,并且您会执行单独的请求以检查其是否准备就绪.

(编辑:商洛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读