Skip to main content

No project description provided

Project description

aioratelimits

Client rate limiter. It enqueues function calls and run them as leaky bucket to ensure specified rates.

Implementation

Leaky bucket. We have one queue for requests and count number of workers. Each worker can handle one request per delay seconds

Install

pip install aioratelimits

Use

The following code prints not more than 2 lines per second.

import asyncio
from aioratelimits import RateLimiter


async def critical_resource(i: int):
    print('request:', i)


async def main():
    async with RateLimiter(count=2, delay=1) as limiter:
        await asyncio.gather(*(
            limiter.run(critical_resource(i))
            for i in range(10)
        ))


asyncio.run(main())

Arguments to RateLimiter:

  • count - how many calls can we do in the specified interval
  • delay - the interval in seconds

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aioratelimits-0.2.6.tar.gz (2.1 kB view hashes)

Uploaded Source

Built Distribution

aioratelimits-0.2.6-py3-none-any.whl (2.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page