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
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 |
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)
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.
Metadata
Release files for redis-throttled-queue 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| redis-throttled-queue-1.0.0.tar.gz | 20.8 kB | Without provenance | Details for redis-throttled-queue-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| redis_throttled_queue-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for redis_throttled_queue-1.0.0-py3-none-any.whl |
Total release size: 27.7 kB
Release files / redis-throttled-queue-1.0.0.tar.gz
| Download URL | redis-throttled-queue-1.0.0.tar.gz |
|---|---|
| Size | 20.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
137a8d71fbf29cf41d5d7eb6c2bac543500177c02f5e49ebac716c7d1a53e422
|
|
BLAKE2b-256 checksum How to use checksums |
13b7167bcbfb48e0d9d5f101ef360be337d22ff109b8e7cb73f4649d95a9932e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.7
|
Release files / redis_throttled_queue-1.0.0-py3-none-any.whl
| Download URL | redis_throttled_queue-1.0.0-py3-none-any.whl |
|---|---|
| Size | 6.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
22c2f85980aff24d9b2d3be7d52393c6edc2cc01e6af5722994425a455f97fd3
|
|
BLAKE2b-256 checksum How to use checksums |
99ff637232b089bd02d776be172302227a08733e2cb77997d22671553aeb9e94
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.7
|
Security for redis-throttled-queue 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.