aiothrottles synchronization primitives are designed to be extension to asyncio synchronization primitives.
For more details, see aiothrottles Documentation.
Throttle implements a rate limiting for asyncio task. A throttle can be used to guarantee limited access to a shared resources.
The preferred way to use a Throttle is an async with statement:
throttle = Throttle('3/s')
# ... later
async with throttle:
# access shared state
which is equivalent to:
throttle = Throttle('3/s')
# ... later
await throttle.acquire()
try:
# access shared state
finally:
throttle.release()
A call rate is determined by the rate
argument.
Pass the rate in the following formats:
"{integer limit}/{unit time}"
"{limit's numerator}/{limit's denominator}{unit time}"
rate
examples:
4/s
,5/m
,6/h
,7/d
1/second
,2/minute
,3/hour
,4/day
1/3s
,12/37m
,1/5h
,8/3d
pip install aiothrottles
or
python setup.py install
Python 3.6, 3.7, 3.8 and 3.9 are supported.
Run all tests.
python setup.py test
Run tests with PyTest.
python -m pytest [-k TEST_NAME] [-m MARKER]
aiothrottles is released under the BSD 3-Clause License.