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()。

相关内容

热门资讯

原来有开挂!三哥玩摆头挂,福建... 原来有开挂!三哥玩摆头挂,福建天天开心辅助器真的假的(推荐一款开挂辅助安装);无需打开直接搜索加(薇...
实测辅助!新海贝之城辅助器,福... 实测辅助!新海贝之城辅助器,福建老友破解(透视美元局开挂辅助安装)海贝之城辅助器ai黑科技系统规律教...
教会开挂!卡农辅助,来物局怎么... 教会开挂!卡农辅助,来物局怎么下载(推荐几款新版开挂辅助软件)来物局怎么下载ai黑科技系统规律教程开...
详细开挂!新全游辅助器,桂林字... 详细开挂!新全游辅助器,桂林字牌辅助(信息共享开挂辅助工具)【无需打开直接搜索加薇136704302...
分析开挂!财神十三章张助安装包... 分析开挂!财神十三章张助安装包,闲逸碰胡辅助器(教学盘点开挂辅助下载)【无需打开直接搜索加薇1367...
分析开挂!随意玩5元流量包,智... 您好:随意玩5元流量包这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌...
正版开挂!新天天贵阳麻将辅助工... 正版开挂!新天天贵阳麻将辅助工具,桂麻圈辅助(盘点一款开挂辅助神器)>>您好:软件加薇1367043...
细节辅助!新蜜瓜大厅控制器,随... 您好:新蜜瓜大厅控制器这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌...
原来有辅助!雀友会辅助潮汕麻将... 原来有辅助!雀友会辅助潮汕麻将脚本,皮皮游戏辅助平台(重大通报开挂辅助安装);打开点击测试直接进入微...
正品开挂!悟空大厅辅助,多多科... 正品开挂!悟空大厅辅助,多多科技手游辅助(透视数据开挂辅助脚本);一、多多科技手游辅助AI软件牌型概...