ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

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

2019-12-01 23:10:06  阅读:278  来源: 互联网

标签:nginx gunicorn django


我为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这样的异步任务队列会进行实际计算,并且您会执行单独的请求以检查其是否准备就绪.

标签:nginx,gunicorn,django
来源: https://codeday.me/bug/20191201/2083796.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有