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

相关内容

热门资讯

2分钟了解!哈糖大菠萝有挂吗!... 2分钟了解!哈糖大菠萝有挂吗!一贯是真的有辅助神器(真实有挂)-哔哩哔哩2分钟了解!哈糖大菠萝有挂吗...
第6分钟了解!蜀渝牌乐汇辅助!... 您好,蜀渝牌乐汇辅助这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】很多玩家...
3分钟了解!微乐a3纸牌有脚本... 3分钟了解!微乐a3纸牌有脚本!都是一直总是有辅助插件(有挂分析)-哔哩哔哩1、进入游戏-大厅左侧-...
第八分钟了解!传送屋app辅助... 第八分钟了解!传送屋app辅助!竟然一直总是有辅助插件(有挂存在)-哔哩哔哩1)传送屋app辅助辅助...
一分钟了解!新518互游插件!... 一分钟了解!新518互游插件!果然存在有辅助工具(有挂讲解)-哔哩哔哩1、上手简单,内置详细流程视频...
八分钟了解!来玩app插件!竟... 八分钟了解!来玩app插件!竟然一直都是有辅助教程(有挂解惑)-哔哩哔哩1)来玩app插件免费钻石:...
第二分钟了解!海贝之城有辅助吗... 第二分钟了解!海贝之城有辅助吗!好像真的是有辅助攻略(竟然有挂)-哔哩哔哩1、不需要AI权限,帮助你...
3分钟了解!情怀大陆dnf辅助... 3分钟了解!情怀大陆dnf辅助!果然一直都是有辅助攻略(有挂细节)-哔哩哔哩1、情怀大陆dnf辅助辅...
第八分钟了解!新天道辅助器怎么... 第八分钟了解!新天道辅助器怎么设置!切实有辅助app(有挂秘笈)-哔哩哔哩在进入新天道辅助器怎么设置...
第9分钟了解!新海贝之城辅助器... 第9分钟了解!新海贝之城辅助器!都是一直都是有辅助app(有挂技巧)-哔哩哔哩1、新海贝之城辅助器透...