asyncio速率限制器,漏桶实现
项目描述
aiolimiter
简介
asyncio速率限制器的有效实现。
该项目实现了漏桶算法,让您能够精确控制代码部分可以进入的速率。
from aiolimiter import AsyncLimiter
# allow for 100 concurrent entries within a 30 second window
rate_limit = AsyncLimiter(100, 30)
async def some_coroutine():
async with rate_limit:
# this section is *at most* going to entered 100 times
# in a 30 second period.
await do_something()
它最初是在Stack Overflow上的一个回答中开发的。
文档
https://aiolimiter.readthedocs.io
安装
$ pip install aiolimiter
该库需要Python 3.7或更高版本。
需求
- Python >= 3.7
许可证
aiolimiter
在MIT许可证下提供。
源代码
该项目托管在GitHub上。
如果您发现了一个错误或有一些改进库的建议,请在错误跟踪器中提交问题。
开发者设置
本工程使用 poetry 来管理依赖、测试和发布。请确保您已安装该工具,然后运行以下命令以进行设置:
poetry install --with docs && poetry run doit devsetup
除了使用 poetry run doit devsetup
之外,您还可以使用 poetry shell
进入带有为您的虚拟环境设置的 shell 环境,或者使用 poetry run ...
在虚拟环境中运行命令。
测试使用 pytest
和 tox
运行。发布使用 poetry build
和 poetry publish
进行。使用 flake8
、black
、mypy
维护代码质量,pre-commit
运行快速检查以维持标准。
定义了一系列 doit
任务;运行 poetry run doit list
(或在激活 poetry shell
后使用 doit list
)来列出它们。默认操作是运行完整的 linting、测试和构建运行。建议在创建拉取请求之前运行此操作。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。
源分发
aiolimiter-1.1.0.tar.gz (6.2 kB 查看哈希值)
构建分发
aiolimiter-1.1.0-py3-none-any.whl (7.2 kB 查看哈希值)
关闭
aiolimiter-1.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 461cf02f82a29347340d031626c92853645c099cb5ff85577b831a7bd21132b5 |
|
MD5 | f207d912c23a351d76adf7f3643734a0 |
|
BLAKE2b-256 | df626de944a6839a68f7d69e552e26d12234d9c556472e4c277a3a563013640a |
关闭
aiolimiter-1.1.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0b4997961fc58b8df40279e739f9cf0d3e255e63e9a44f64df567a8c17241e24 |
|
MD5 | a5dfaac6ceccd57e4c32e73fe567db60 |
|
BLAKE2b-256 | 60694b7dea755fafa10b248928da836a2cc8b5cff0762f363234e24218040f8e |