Queue system with key-based throttling implemented over Redis.
Project description
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
Development
To run all the tests run:
tox
Note, to combine the coverage data from all the tox environments run:
Windows |
set PYTEST_ADDOPTS=--cov-append tox |
---|---|
Other |
PYTEST_ADDOPTS=--cov-append tox |
Changelog
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)
Added support in a AsyncThrottledQueue class that only differs a bit from the regular ThrottledQueue:
__len__ is removed, instead a awaitable size() method is available.
__init__ doesn’t validate version anymore, instead you can await on validate_version().
push(), pull() and cleanup() are awaitable.
Added a validate_version argument to ThrottledQueue (default: True).
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)
Renamed attributes (should be safe to mess with):
_limit becomes limit.
_resolution becomes resolution.
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)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for redis-throttled-queue-0.6.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f60c47d1094ed0901c8b7d4e5d64ab330158e27b91f0786dbb7183376957b0b |
|
MD5 | cf98f3a6fb98da3becc47cfffad27792 |
|
BLAKE2b-256 | ae68e84d47e251f57e8c01a67021d1f410edc7efd17a814fd15b4515aebba9a1 |
Hashes for redis_throttled_queue-0.6.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c74bdb7c1d7d2575d1d14e2ac6e116e4cc3eb1ae20b9732a345d050641fb3d9 |
|
MD5 | 9dd7a414d87f56a4fb7efc02003bf59f |
|
BLAKE2b-256 | 3ac7c62326f59559e4cea74e81bec24e60e223d26b652d7ded04d7d0bcc129ac |