V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
chenqh
V2EX  ›  Python

因为接口的一部分请求超时导致这个接口完全不可用怎么办?

  •  
  •   chenqh · 2017-03-28 21:20:32 +08:00 · 3767 次点击
    这是一个创建于 2579 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 语言: python
    2. 框架: tornado+gevent 。。我这里是把 tornado 当 flask 来用的
    3. 在对于路由 url_pathA的处理里面:我需要向 根据参数来决定 向 urlA 还是 urlB 请求,再根据请求结果响应.设置了超时为 1s
    4. 对于 url_pathA,supervisor 起两个进程来处理
    

    现有遇到的问题是 urlA 没有响应,导致只有超时响应。。 而现在其他请求( handler 不是请求 urlA 的请求)也没有响应了,我知道的原因是因为urlA导致的,把请求要urlA的请求干掉响应就正常了,但是这不解决办法,我想知道 这种问题应该怎么解决?

    8 条回复    2017-04-01 10:38:14 +08:00
    laball
        1
    laball  
       2017-03-28 21:26:00 +08:00
    处理多个请求的时候,应该是并行的啊,你这个怎么感觉成了串行的了。
    chenqh
        2
    chenqh  
    OP
       2017-03-28 21:28:20 +08:00
    @laball 什么意思 ?我的意思对于接口 A ,只有两个进程来响应,因为一部分请求需要 1S 来响应,导致其他请求在排队,这种问题应该怎么解决呢?
    lovedboy
        3
    lovedboy  
       2017-03-28 21:40:00 +08:00
    打 patch 生效了么?用了阻塞的 C 库?
    chenqh
        4
    chenqh  
    OP
       2017-03-28 21:44:58 +08:00
    @lovedboy 不懂,我用的 request 库。。应该生效了吧。。
    shuax
        5
    shuax  
       2017-03-28 22:16:18 +08:00
    @chenqh 要用 tornado 的异步起来
    chenqh
        6
    chenqh  
    OP
       2017-03-28 22:38:31 +08:00
    @shuax tornado 没有异步 orm ,用不起来了。。而且现在很多都是用 peewee 做 orm 的
    gulu
        7
    gulu  
       2017-03-28 22:46:55 +08:00 via Android
    不要用 requests ,用 tornado 自己的 AsyncHttpClient 。
    不用异步 ORM 不代表完全不能用异步,如果数据库查询成了瓶颈,那就要优化数据库。但你这里很明显是 requests 网络请求阻塞了线程啦。
    laball
        8
    laball  
       2017-04-01 10:38:14 +08:00
    @chenqh 直接使用异步操作吧。这样就不会阻塞当前线程了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   928 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 69ms · UTC 20:00 · PVG 04:00 · LAX 13:00 · JFK 16:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.