Skip to content

Python package for limiting and delaying calls to coroutines nginx style

Notifications You must be signed in to change notification settings

QratorLabs/aioleakybucket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Konstantin Podshumok
Mar 5, 2019
30d0f88 · Mar 5, 2019

History

20 Commits
Nov 2, 2016
Nov 4, 2016
Nov 3, 2016
Mar 5, 2019
Nov 5, 2016

Repository files navigation

Leaky bucket implementation ported from nginx

Theory

See /doc (TODO)

Usage

Set up limits

zone = Zone('zone_name', rate_limit)
limit1 = Limit(zone, burst, nodelay)

Default zones

TODO

Decorators

@limit_calls(zone, burst, nodelay)
def some_function():
    """Usage with non-awatables"""
    return 0


@limit_calls(zone, burst, nodelay)
async def some_other_function():
    """Usage with awatables"""
    return await asincio.sleep(1)

Manual mode

(Not implemented yet)

Transform a table with calls:

    (timestamp, requester_id, requested_object)

Into

   (timestamp, requester_id, access_granted, delay, excess)

Synchronous mode

TODO

About

Python package for limiting and delaying calls to coroutines nginx style

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages