Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Python library providing function decorator to pace calls to external systems using token bucket alogrithm

License

Notifications You must be signed in to change notification settings

mkeshav/pace-maker

Repository files navigation

CircleCI branch PyPI version PyPI - Python Version Quality Gate Status

Pace Maker

There are times in your life when you have to call legacy api's that can handle like 2 reqs/sec. There is no point hammering the old man and killing him.

This library will help you pace calls to the old man, so his heart keeps ticking.

Combining this library with backoff(https://github.com/litl/backoff) can do wonders.

Install

python3 -m pip install pacemaker

Usage

    from pacemaker import pace_me

    # Function that will yield data that the process function needs
    def data_gen(n=3):
        for i in range(n):
            yield [x for x in range(n)]

    # Will make 3 requests to that url/sec using 1 token everytime process method is called. What data_gen function yields should be the first argument
    @pace_me(data_gen, rate_per_second=3, n=6)
    def process(data, url):
        r = requests.post(url, data=data)

Run tests

  • All tests (docker-compose run --rm test)

Release

  • Add PYPI_API_TOKEN env variable in circle
  • TWINE_PASSWORD used pypi login password which is bad

About

Python library providing function decorator to pace calls to external systems using token bucket alogrithm

Resources

License

Stars

Watchers

Forks

Packages

No packages published