ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

aiohttp 多任务异步协程

2021-02-24 22:34:16  阅读:225  来源: 互联网

标签:异步 协程 aiohttp jay text app time import page


flask服务器.py

import time
from flask import Flask

app = Flask(name)

@app.route('/bobo')
def index_bobo():
time.sleep(2)
return 'Hello bobo!'
@app.route('/jay')
def index_jay():
time.sleep(2)
return 'Hello jay'
@app.route('/tom')
def index_tom():
time.sleep(2)
return 'hello tom'
if name == 'main':
app.run(threaded=True)

多任务异步协程.py

import requests
import asyncio
import time
import aiohttp

start = time.time()
urls = ['http://127.0.0.1:5000/bobo','http://127.0.0.1:5000/jay','http://127.0.0.1:5000/tom']

async def get_page(url):
async with aiohttp.ClientSession() as session:
async with await session.get(url) as response: # await 耗时操作手动挂起
# text() 方法返回字符串形式的数据
# read() 方法返回的是二进制形式的数据
# json() 方法返回的是json对象
# 注意: 获取响应数据操作之前一定要使用await进行手动挂起
page_text = await response.text()
print(page_text)

tasks = []

for url in urls:
c = get_page(url)
task = asyncio.ensure_future(c)
tasks.append(task)
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(tasks))

end = time.time()
print('总耗时',end - start)

标签:异步,协程,aiohttp,jay,text,app,time,import,page
来源: https://www.cnblogs.com/niucunguo/p/14444181.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有