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)