跳转到主要内容

Async IO速率限制器

项目描述

asynciolimiter

一个简单而高效的Python AsyncIO速率限制器。

GitHub branch checks state PyPI PyPI - Python Version codecov

安装

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 查看哈希值)

上传时间 源代码

构建分布

asynciolimiter-1.1.0.post3-py3-none-any.whl (8.2 kB 查看哈希值)

上传时间 Python 3

支持者

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面