【发布时间】:2020-10-31 07:02:18
【问题描述】:
我正在尝试学习 asyncio 和 aiohttp。我有以下代码可以使用 asyncio 查询一堆 URL。
import aiohttp
import asyncio
sync def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def main():
urls = [
'http://yahoo.com',
'https://google.com',
'http://bing.com'
]
tasks = []
async with aiohttp.ClientSession() as session:
for url in urls:
tasks.append(fetch(session, url))
htmls = await asyncio.gather(*tasks)
for html in htmls:
print(html[:100] + "\n")
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
如何获取每个异步查询的响应时间?我的第一个想法是只使用一个计时器,但我不知道如何在这种情况下使用它。我试过搜索是否有人做过类似的事情,但找不到任何东西。
【问题讨论】:
-
可以记录开始请求前的时间,计算请求完成时的时间差,并与HTML内容一起返回。
标签: python python-asyncio aiohttp