Ant*_*ton 12 django timeout nginx gunicorn
我在Nginx后面的Gunicorn中运行了一个Django应用程序.一切正常,可以解决一件奇怪的事情:我有一个"下载"视图和一个RESTful json API.调用下载视图时,我使用urllib2访问json API以获取信息.并且当我尝试对json api执行此http请求时,请求超时,出现错误HTTP错误504:网关超时.
当我使用./manage.py运行服务器运行代码时,一切正常.对json api的http get请求也只需几毫秒,因此没有遇到超时的危险.
这里的伪代码情况:
myproject/views.py:(可访问:http://myproject.com/download)
1 def download(request, *args, **kwargs):
2 import urllib2
3 opener = urllib2.build_opener()
4 opener.open('http://myproject.com/api/get_project_stats')
Run Code Online (Sandbox Code Playgroud)
第四opener.open()行中的调用在Gunicorn中运行时会进入超时状态,当./manage.py runserver每次运行时运行正常(并且api调用只需要几毫秒).
有没有人有同样的问题?更重要的是:你是如何解决的?
Sin*_*lil 15
我使用Gunicorn,nGinx,Django和Requests也有同样的问题
每次我这样做:
response = requests.get('http://my.url.com/here')
Run Code Online (Sandbox Code Playgroud)
工人们会超时
我通过从Syncronous(同步)工作器切换到异步(eventlet)工作器来解决问题.
如果要启动命令行添加:
-k 'eventlet'
Run Code Online (Sandbox Code Playgroud)
如果您使用的是配置文件,请添加:
worker_class = "eventlet"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6720 次 |
| 最近记录: |