gevent打破请求/ urllib2超时

时间:2013-06-28 13:46:58

标签: python urllib2 gevent eventlet

前段时间我为我的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

1 个答案:

答案 0 :(得分:3)

我找到了解决方案here。此错误已在版本 1.0dev 中修复,您可以从github安装它:

pip install cython
pip install git+https://github.com/surfly/gevent.git

@ j-f-sebastian,谢谢你的提示!