Skip to main content

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:

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)

Source distribution for redis-throttled-queue 1.0.0
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)

Table of built distributions (wheels) for redis-throttled-queue 1.0.0
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page