python-rq
Port variant v13
Summary Library for procesing background jobs (3.13)
Package version 2.3.1
Homepage https://python-rq.org/
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants v12
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 06 APR 2025, 19:13:07 UTC
Port created 01 JAN 2023, 17:21:46 UTC
Subpackage Descriptions
single RQ (_Redis Queue_) is a simple Python library for queueing jobs and processing them in the background with workers. It is backed by Redis or Valkey and is designed to have a low barrier to entry while scaling incredibly well for large applications. It can be integrated into your web stack easily, making it suitable for projects of any size—from simple applications to high-volume enterprise systems. RQ requires Redis >= 4 or Valkey >= 7.2. [Build status] [PyPI] [Coverage] [![Code style: Ruff]](https://github.com/astral-sh/ruff) Full documentation can be found [here][d]. ## Support RQ If you find RQ useful, please consider supporting this project via [Tidelift]. ## Getting started First, run a Redis server, of course: ```console $ redis-server ``` To put jobs on queues, you don't have to do anything special, just define your typically lengthy or blocking function: ```python import requests def count_words_at_url(url): """Just an example function that's called async.""" resp = requests.get(url) return len(resp.text.split()) ``` Then, create an RQ queue: ```python from redis import Redis from rq import Queue queue = Queue(connection=Redis()) ``` And enqueue the function call: ```python from my_module import count_words_at_url job = queue.enqueue(count_words_at_url, 'http://nvie.com') ``` ## Scheduling Jobs Scheduling jobs is also easy: ```python # Schedule job to run at 9:15, October 10th job = queue.enqueue_at(datetime(2019, 10, 10, 9, 15), say_hello) # Schedule job to run in 10 seconds job = queue.enqueue_in(timedelta(seconds=10), say_hello) ``` ## Repeating Jobs To execute a `Job` multiple times, use the `Repeat` class: ```python from rq import Queue, Repeat # Repeat job 3 times after successful execution, with 30 second intervals queue.enqueue(my_function, repeat=Repeat(times=3, interval=30)) # Repeat job 3 times with different intervals between runs queue.enqueue(my_function, repeat=Repeat(times=3, interval=[5, 10, 15])) ``` ## Retrying Failed Jobs Retrying failed jobs is also supported: ```python from rq import Retry # Retry up to 3 times, failed job will be requeued immediately queue.enqueue(say_hello, retry=Retry(max=3)) # Retry up to 3 times, with configurable intervals between retries queue.enqueue(say_hello, retry=Retry(max=3, interval=[10, 30, 60])) ```
Configuration Switches (platform-specific settings discarded)
PY312 OFF Build using Python 3.12 PY313 ON Build using Python 3.13
Package Dependencies by Type
Build (only) python313:dev:std
python-pip:single:v13
autoselect-python:single:std
Build and Runtime python313:primary:std
Runtime (only) python-click:single:v13
python-redis:single:v13
Download groups
main mirror://PYPIWHL/b4/4b/ae55d7ec548d5f77cb8cfee59d78725c4e26bdf9c052b9d0b4726ceca98c
Distribution File Information
2bbd48b976fdd840865dcab4bed358eb94b4dd8a02e92add75a346a909c1793d 100363 python-src/rq-2.3.1-py3-none-any.whl
Ports that require python-rq:v13
python-django-rq:v13 Django integration of Redis Queue (3.13)
python-rq-scheduler:v13 Job scheduling capabilities to Redis Queue (3.13)