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

相关内容

热门资讯

一起来讨论!poker wor... 一起来讨论!poker world辅助(辅助挂)果然有挂(有挂总结辅助脚本)1、透视辅助软件激活码多...
玩家爆料!hhpoker辅助软... 玩家爆料!hhpoker辅助软件(辅助挂)其实有挂(了解有挂辅助方法)1. 选牌创建新账号,点击进入...
玩家必看科普!约局吧如何查看是... 玩家必看科普!约局吧如何查看是否有挂(辅助挂)其实有挂(有人有挂辅助脚本)1、免费脚本咨询教程、免费...
实测必看!德扑圈有透视吗(辅助... 实测必看!德扑圈有透视吗(辅助挂)切实真的是有挂(有挂辅助辅助工具)1、进入到是否有挂之后,能看到左...
重大发现!有哪些免费的wpk作... 重大发现!有哪些免费的wpk作弊码(辅助挂)原来有挂(有挂辅助辅助脚本)1、进入游戏-大厅左侧-新手...
每日必看教程!pokemmo脚... 每日必看教程!pokemmo脚本辅助器下载(辅助挂)其实是有挂(有挂技巧辅助工具)1、下载好脚本下载...
技术分享!如何下载wpk透视版... 技术分享!如何下载wpk透视版(辅助挂)原来真的是有挂(有挂实锤辅助软件)辅助器是一种具有地方特色的...
2分钟细说!wpk系统是否存在... 2分钟细说!wpk系统是否存在作弊行为(辅助挂)一直是真的有挂(有挂方法辅助教程);1、免费脚本咨询...
一分钟了解!xpoker怎么作... 一分钟了解!xpoker怎么作弊(辅助挂)切实真的是有挂(有挂讲解辅助攻略)1、操作简单,无需手机版...
科技揭秘!hhpoker德州机... 科技揭秘!hhpoker德州机器人(辅助挂)原来是真的有挂(有挂规律辅助方法)1、进入到是否有挂之后...