python 协程运行正常,却提示ClientSession.close错误

本地搭建的Flask测试环境:

协程代码如下:

import asyncio
import aiohttp
import time

start = time.time()


async def get(url):
    session = aiohttp.ClientSession()
    response = await session.get(url)
    result = await response.text()
    session.close()
    return result


async def request():
    url = 'http://127.0.0.1:5000'
    print('Waiting for', url)
    result = await get(url)
    print('Get response from', url, 'Result:', result)


tasks = [asyncio.ensure_future(request()) for _ in range(5)]
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(tasks))

end = time.time()
print('Cost time:', end - start)

运行结果如下:

Waiting for http://127.0.0.1:5000Waiting for http://127.0.0.1:5000Waiting for http://127.0.0.1:5000Waiting for http://127.0.0.1:5000Waiting for http://127.0.0.1:5000Get response from http://127.0.0.1:5000 Result: Hello!Get response from http://127.0.0.1:5000 Result: Hello!Get response from http://127.0.0.1:5000 Result: Hello!Get response from http://127.0.0.1:5000 Result: Hello!C:/Users/gyp/PycharmProjects/untitled/4545/xiechengp.py:24: RuntimeWarning: coroutine 'ClientSession.close' was never awaited  session.close()Unclosed client sessionclient_session: <aiohttp.client.ClientSession object at 0x0000000003B102E8>Unclosed client sessionclient_session: <aiohttp.client.ClientSession object at 0x0000000003B10940>Unclosed client sessionclient_session: <aiohttp.client.ClientSession object at 0x00000000030ADC50>Unclosed client sessionclient_session: <aiohttp.client.ClientSession object at 0x00000000030ADC18>Get response from http://127.0.0.1:5000 Result: Hello!Cost time: 3.013000011444092Unclosed client sessionclient_session: <aiohttp.client.ClientSession object at 0x0000000003B10DD8>


qq_乱序_0
浏览 4442回答 1
1回答

pardon110

将get协程内的return 改为yield
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python