AsyncioSleep似乎无法满足某些状态码的限制
创始人
2024-09-21 07:00:41
0

在使用 asyncio 时,可以利用 asyncio.gather() 或者是 asyncio.wait() 进行一次执行多个协程。这样,如果一个协程出现了时间阻塞,那么其他协程依然可以同时执行,以达到更高的效率。

另外,在使用 asyncio.sleep() 时,需要注意传入的时间参数单位为秒而非毫秒。可以通过将时间除以 1000 的方式将毫秒转换为秒。此外,如果需要更精细的调度管理,可以使用 aiohttp-limiter 进行更灵活的控制。以下是一个使用 asyncio.gather() 解决 Asyncio Sleep 满足率限制的代码示例:

import asyncio
import aiohttp

async def fetch_page(session, url):
    async with session.get(url) as response:
        if response.status == 429:
            await asyncio.sleep(int(response.headers['Retry-After']))
        elif response.status == 200:
            await asyncio.sleep(0.5)
        else:
            print(f"Unhandled status code {response.status} for {url}")

async def main():
    async with aiohttp.ClientSession() as session:
        tasks = []
        for i in range(10):
            task = fetch_page(session, f"http://example.com/page/{i}")
            tasks.append(task)
        await asyncio.gather(*tasks)

if __name__ == '__main__':
    asyncio.run(main())

在这个示例代码中,当 HTTP 响应状态为 429 时,我们使用了 asyncio.sleep(),它的参数获取自响应头的 Retry-After 值。当响应状态为 200 时,我们延迟了 0.5 秒 而不是使用了 asyncio.sleep()。

相关内容

热门资讯

透视好友!指尖四川辅助破解版,... 透视好友!指尖四川辅助破解版,红茶馆app辅助-真是真的有辅助教程(哔哩哔哩)1、操作简单,无需指尖...
透视脚本!越局吧可以看到别人底... 透视脚本!越局吧可以看到别人底牌,金华佛手在线辅助软件-原来存在有辅助方法(哔哩哔哩)1、让任何用户...
近期!wepoker辅助器是真... 近期!wepoker辅助器是真的吗,闲逸辅助软件下载-确实是有辅助挂(哔哩哔哩)该软件可以轻松地帮助...
据统计!创思维激k看底牌辅助开... 据统计!创思维激k看底牌辅助开发商,约战竞技场辅助脚本-总是是真的有辅助软件(哔哩哔哩)1、许多玩家...
黑科技辅助挂!乐乐休闲游戏辅助... 黑科技辅助挂!乐乐休闲游戏辅助,微信边锋辅助软件-其实真的有辅助器(哔哩哔哩)1、超多福利:超高返利...
据目击者称!新玉海楼游戏茶苑,... 据目击者称!新玉海楼游戏茶苑,丫丫衡阳字牌3辅助-一贯存在有辅助攻略(哔哩哔哩)丫丫衡阳字牌3辅助脚...
复盘辅助挂!牵手游戏辅助,开心... 复盘辅助挂!牵手游戏辅助,开心泉州辅助-果然真的是有辅助教程(哔哩哔哩)1、每一步都需要思考,不同水...
据相关数据显示!雀友会广东潮汕... 据相关数据显示!雀友会广东潮汕麻雀有挂么,衢州都莱辅助软件-总是是有辅助app(哔哩哔哩)亲,关键说...
昨日!情怀宜春辅助,赣牌圈有挂... 昨日!情怀宜春辅助,赣牌圈有挂吗-都是确实有辅助教程(哔哩哔哩)1、赣牌圈有挂吗有没有辅助教程、赣牌...
透视透视!新玄龙辅助,大菠萝挂... 透视透视!新玄龙辅助,大菠萝挂机辅助-一贯真的有辅助教程(哔哩哔哩)1、让任何用户在无需大菠萝挂机辅...