Async IO速率限制器
项目描述
asynciolimiter
一个简单而高效的Python AsyncIO速率限制器。
安装
pip install asynciolimiter
示例用法
# Limit to 10 requests per 5 second (equiv to 2 requests per second)
>>> limiter = asynciolimiter.Limiter(10/5)
>>> async def main():
... await limiter.wait() # Wait for a slot to be available.
... pass # do stuff
>>> limiter = Limiter(1/3)
>>> async def request():
... await limiter.wait()
... print("Request") # Do stuff
...
>>> async def main():
... # Schedule 1 request every 3 seconds.
... await asyncio.gather(*(request() for _ in range(10)))
可用的速率限制器类型
Limiter
:根据每秒请求数限制,并考虑在进程睡眠期间可能发生的CPU密集型任务或其他延迟。LeakyBucketLimiter
:根据每秒请求数限制,根据漏桶算法。具有最大容量和初始请求数量。StrictLimiter
:根据每秒请求数限制,不考虑CPU或其他进程睡眠。没有突发,结果速率始终低于设定的限制。
文档
完整文档可在Read the Docs上找到。
许可证
本作品采用MIT许可证。
贡献
请参阅contributing.md。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。
源代码分布
asynciolimiter-1.1.0.post3.tar.gz (8.1 kB 查看哈希值)