跳转到主要内容

asyncio速率限制器,漏桶实现

项目描述

aiolimiter

Azure Pipelines status for master branch codecov.io status for master branch Latest PyPI package version Latest Read The Docs

简介

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

许可证

aiolimiterMIT许可证下提供。

源代码

该项目托管在GitHub上。

如果您发现了一个错误或有一些改进库的建议,请在错误跟踪器中提交问题。

开发者设置

本工程使用 poetry 来管理依赖、测试和发布。请确保您已安装该工具,然后运行以下命令以进行设置:

poetry install --with docs && poetry run doit devsetup

除了使用 poetry run doit devsetup 之外,您还可以使用 poetry shell 进入带有为您的虚拟环境设置的 shell 环境,或者使用 poetry run ... 在虚拟环境中运行命令。

测试使用 pytesttox 运行。发布使用 poetry buildpoetry publish 进行。使用 flake8blackmypy 维护代码质量,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 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面