python - gevent 中断请求/urllib2 超时

标签 python urllib2 gevent eventlet

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

相关文章:

Python flask saml 抛出 saml2.sigver.SigverError 错误消息

python - 为什么我在使用 urllib2 请求 URL 时得到 “HTTP Error 405: Method Not Allowed”?

python-3.x - 目前可用于在 python3 上使用 flask 的 websockets 的最佳选择

python - puka 可以与 gevent 或 eventlet 配合使用吗?

Python gevent pool.join() 永远等待

python - Python2 和 Python3 之间的 zipfile 头语言编码位设置不同

python - 将图像缩减为由一组点定义的路径

python - 每次计算机从休眠状态唤醒时运行 python 脚本

python - AttributeError ("' str' 对象没有属性 'read'")

Python 3.4.3 json.dumps() "is not JSON serializable"从字节转换时出错