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

相关内容

热门资讯

透视总结"友友联盟免... 透视总结"友友联盟免费辅助器"确实是真的有辅助攻略(哔哩哔哩)1、友友联盟免费辅助器脚本辅助下载、友...
值得注意的是"广西友... 值得注意的是"广西友乐软件辅助"真是存在有辅助器(哔哩哔哩)广西友乐软件辅助破解侠是真的助透视。每个...
透视智能ai"爱来掌... 透视智能ai"爱来掌中宝有没有挂"好像是有辅助插件(哔哩哔哩)暗藏猫腻,小编详细说明爱来掌中宝有没有...
透视好牌"佛手在线破... 透视好牌"佛手在线破解"竟然确实有辅助app(哔哩哔哩)1、每一步都需要思考,不同水平的挑战会更加具...
透视好友房"微乐智能... 透视好友房"微乐智能辅助app"果然真的有辅助器(哔哩哔哩)1、微乐智能辅助app透视辅助软件激活码...
透视总结"新奇玩乐辅... 透视总结"新奇玩乐辅助器下载"都是存在有辅助神器(哔哩哔哩)1、新奇玩乐辅助器下载辅助软件下载优化,...
透视软件"财神十三张... 您好,财神十三张辅助这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家...
这一现象值得深思"新... 这一现象值得深思"新广西老友辅助"竟然是有辅助方法(哔哩哔哩)1、许多玩家不知道新广西老友辅助辅助怎...
2026版复盘"小闲... 2026版复盘"小闲川南手游辅助器"果然存在有辅助插件(哔哩哔哩)1、完成小闲川南手游辅助器辅助器v...
透视插件"福建天天开... 透视插件"福建天天开心辅助软件大全"真是是真的有辅助方法(哔哩哔哩)1、实时福建天天开心辅助软件大全...