推荐学习书目
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
Multicom
V2EX  ›  Python

aiohttp 并发请求被挂起

  •  
  •   Multicom · Jun 18, 2021 · 2345 views
    This topic created in 1789 days ago, the information mentioned may be changed or developed.

    并发数 10,偶数请求立即完成,奇数请求被挂起超过 120 秒,是使用方法不对吗?

    import asyncio
    import aiohttp
    import time
    
    async def get(s, i):
        start = time.time()
        async with s.get('URL') as r:
            await r.read()
        print(i, ': {} s'.format(round(time.time() - start, 2)))
    
    
    async def test():
        async with aiohttp.ClientSession() as s:
            await asyncio.gather(*[get(s, i) for i in range(10)])
    
    if __name__ == "__main__":
        loop = asyncio.get_event_loop()
        loop.run_until_complete(test())
    

    结果

    0 : 0.38 s
    8 : 0.4 s
    2 : 0.57 s
    6 : 0.6 s
    4 : 0.6 s
    1 : 129.49 s
    9 : 129.5 s
    3 : 129.52 s
    7 : 129.57 s
    5 : 129.63 s
    
    6 replies    2021-06-22 11:16:44 +08:00
    Kobayashi
        1
    Kobayashi  
       Jun 19, 2021
    无法复现。测试 URL https://httpbin.org/headers

    ❯ python test_aiohttp.py
    7 : 1.16 s
    1 : 1.16 s
    4 : 1.16 s
    9 : 1.16 s
    6 : 1.16 s
    2 : 1.17 s
    8 : 1.17 s
    3 : 1.26 s
    5 : 1.26 s
    0 : 1.27 s
    Multicom
        2
    Multicom  
    OP
       Jun 20, 2021
    @Kobayashi 经测试,httpbin.org 确实没有问题,但 yandex.ruwww.google.com 均存在不同数量的请求被挂起 120~240 秒
    onlyzdd
        3
    onlyzdd  
       Jun 20, 2021
    @Multicom 经测试,无法复现
    Multicom
        4
    Multicom  
    OP
       Jun 20, 2021
    @onlyzdd 请问 Python 和 aiohttp 分别是什么版本?当前环境下一直存在该问题
    ```
    root@host ~ # python3 -V
    Python 3.7.3
    root@host ~ # pip3 show aiohttp | grep Version
    Version: 3.7.4.post0
    root@host ~ # uname -a
    Linux Debian-104-buster-64-minimal 5.12.10-xanmod1-cacule ...
    ```
    onlyzdd
        5
    onlyzdd  
       Jun 21, 2021
    @Multicom 应该是网络问题吧
    Kobayashi
        6
    Kobayashi  
       Jun 22, 2021
    https://www.google.com

    ❯ python test_aiohttp.py
    0 : 1.88 s
    7 : 1.89 s
    6 : 1.9 s
    9 : 1.93 s
    8 : 1.94 s
    4 : 1.97 s
    3 : 1.97 s
    2 : 1.97 s
    1 : 2.02 s
    5 : 2.03 s

    https://yandex.ru

    ❯ python test_aiohttp.py
    0 : 3.08 s
    1 : 3.07 s
    5 : 3.1 s
    7 : 3.14 s
    3 : 3.16 s
    4 : 3.16 s
    2 : 3.17 s
    8 : 3.17 s
    6 : 3.18 s
    9 : 3.21 s
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3309 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 11:46 · PVG 19:46 · LAX 04:46 · JFK 07:46
    ♥ Do have faith in what you're doing.