程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2022-02(5)

2022-03(4)

python3 协程Unclosed client session client_session: <aiohttp.client.ClientSession object at 0x0918BAC0>

发布于2020-03-31 19:23     阅读(1701)     评论(0)     点赞(21)     收藏(3)


学习了崔大神的异步协程的使用方法,代码运行的时候出现如标题的警告很是烦人,在这里记录下解决方法。

解决方法就是在session.close()之前加await

首先看下代码:

定义一个flask服务器

from flask import Flask
import time

app = Flask(__name__)


@app.route('/')
def index():
    time.sleep(3)
    return 'Hello!'

if __name__ == '__main__':
    app.run(threaded=True)

运行后用python去异步请求:

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)

控制台输出:

 

 一片警告,应该是版本更新,所以用法有点不同

解决:session.close()前加await

await session.close()

 

 页面清爽很多。。。

参考:https://stackoverflow.com/questions/54807599/aiohttp-unclosed-client-session-client-session

静觅 » Python中异步协程的使用方法介绍

原文链接:https://www.cnblogs.com/nmsghgnv/p/12603084.html



所属网站分类: 技术文章 > 博客

作者:imsorry

链接:https://www.pythonheidong.com/blog/article/292732/b72e7f6e2195afeac28a/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

21 0
收藏该文
已收藏

评论内容:(最多支持255个字符)