栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

aiohttp:速率限制并行请求

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

aiohttp:速率限制并行请求

如果我理解你很好,你想限制并发请求数?

有一个内部的对象

asyncio
命名
Semaphore
,它就像一个异步
RLock

semaphore = asyncio.Semaphore(50)#...async def limit_wrap(url):    async with semaphore:        # do what you want#...results = asyncio.gather([limit_wrap(url) for url in urls])

更新

假设我做50个并发请求,他们也都在2秒内完成。因此,它不接触限制(只有每秒25个请求)。

这意味着我应该做100个并发请求,他们也都在2秒内太(每秒50个请求)完成。但在此之前,你实际上使这些要求,你怎么能确定他们将如何悠长?

或者,如果你不介意 每秒完成的请求,每秒发出的请求 。您可以:

async def loop_wrap(urls):    for url in urls:        asyncio.ensure_future(download(url))        await asyncio.sleep(1/50)asyncio.ensure_future(loop_wrap(urls))loop.run_forever()

上面的代码将创建一个

Future
实例每隔
1/50
一秒。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639468.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号