前段时间我为我的Django项目编写了与外部服务交互的代码:
try:
response = requests.get('some host', timeout=TIMEOUT)
except:
log.warning('timeout')
return None
我在我的开发环境(python manage.py runserver
)中进行了测试,并且超时工作正常。然后我决定用 gevent 修补它,为 gunicorn 指定池实现,如下所示:
python manage.py run_gunicorn -k gevent
现在get
调用不会被timout异常中断。我将池实现更改为 eventlet ,它按预期工作:
python manage.py run_gunicorn -k eventlet
有没有办法修复 gevent ?
答案 0 :(得分:3)
我找到了解决方案here。此错误已在版本 1.0dev 中修复,您可以从github安装它:
pip install cython
pip install git+https://github.com/surfly/gevent.git
@ j-f-sebastian,谢谢你的提示!