python-rq
Port variant v13
Summary Library for procesing background jobs (3.13)
Package version 2.3.3
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 11 MAY 2025, 00:44:48 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/66/25/2e17899e70317497cf0fe2d2742ba464becf7e996f65e17b48440de88635
Distribution File Information
2202c4409c4c527ac4bee409867d6c02515dd110030499eb0de54c7374aee0ce 101012 python-src/rq-2.3.3-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)