Skip to main content

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.

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
redis-throttled-queue-1.0.0.tar.gz 20.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for redis-throttled-queue 1.0.0
File Interpreter ABI Platform
redis_throttled_queue-1.0.0-py3-none-any.whl Python 3 none any Details

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

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

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