========
Overview
Queue system with key-based throttling implemented over Redis.
- Free software: BSD 2-Clause License
Installation
::
pip install redis-throttled-queue
You can also install the in-development version with::
pip install https://github.com/ionelmc/python-redis-throttled-queue/archive/main.zip
Documentation
https://python-redis-throttled-queue.readthedocs.io/
Development
To run all the tests run::
tox
Note, to combine the coverage data from all the tox environments run:
.. list-table::
:widths: 10 90
:stub-columns: 1
- - Windows
- ::
set PYTEST_ADDOPTS=--cov-append
tox
- - Other
- ::
PYTEST_ADDOPTS=--cov-append tox
1
Changelog
1.0.0 (2022-11-15)
- Switched from eval scripts to redis functions. Minimum Redis server version becomes 7.0.
- Replaced unpack calls with direct indexing in the Lua functions.
- These changes improve the push operation by at least 6%.
0.6.0 (2022-07-06)
- Simplified
pop()
code to avoid the expensive scan operations.
The '...:names
key is now a sorted set and will be used as a template for the usage keys ('...:usage:<window>'
).
0.5.0 (2022-06-28)
0.4.4 (2022-05-09)
- Fixed missing usage key expiration when some queues are empty.
0.4.3 (2022-04-09)
- Fixed buggy counts when duplicate values are pushed.
For now the highest priority will be used when two identical
values would be pushed.
0.4.2 (2022-04-02)
- Refactored some duplicated code in the
pop
script.
0.4.1 (2022-03-31)
- Fixed bogus error in
cleanup()
when db is completely empty.
0.4.0 (2022-03-31)
- Added
last_activity
and idle_seconds
attributes. - Added a
cleanup()
method.
0.3.1 (2022-03-31)
0.3.0 (2022-03-31)
- Allowed
pop(window)
using any window value (str/bytes/int recommended tho).
0.2.0 (2022-03-31)
- Fixed
__len__
(was returning a string).
0.1.0 (2022-03-30)