前段时间我为我的 Django 项目编写了与外部服务交互的代码:
try:
response = requests.get('some host', timeout=TIMEOUT)
except:
log.warning('timeout')
return None
我在我的开发环境 (python manage.py runserver
) 中测试了它并且超时工作正常。然后我决定通过为 gunicorn 指定池实现来使用 gevent 对其进行修补,如下所示:
python manage.py run_gunicorn -k gevent
现在 get
调用不会被超时异常中断。我将池实现更改为 eventlet,它按预期工作:
python manage.py run_gunicorn -k eventlet
有什么方法可以修复 gevent 吗?
最佳答案
我找到了解决方案 here .此错误已在 1.0dev 版本中修复,您可以从 github 安装它:
pip install cython
pip install git+https://github.com/surfly/gevent.git
@j-f-sebastian,谢谢你的提示!
关于python - gevent 中断请求/urllib2 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17366173/