python-rq
Port variant v12
Summary Library for procesing background jobs (3.12)
BROKEN
Package version 1.16.2
Homepage https://python-rq.org/
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants v11
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 01 MAY 2024, 16:05:35 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 and it is designed to have a low barrier to entry. It should be integrated in your web stack easily. RQ requires Redis >= 3.0.0. [Build status] [PyPI] [Coverage] [![Code style: black]](https://github.com/psf/black) 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()) ``` You do use the excellent [requests][r] package, don't you? 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 are also similarly 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) ``` 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])) ``` For a more complete example, refer to the [docs][d]. But this is the essence. ### The worker To start executing enqueued function calls in the background, start a worker from your project's directory: ```console $ rq worker --with-scheduler *** Listening for work on default Got count_words_at_url('http://nvie.com') from default Job result = 818 *** Listening for work on default ``` That's about it.
Configuration Switches (platform-specific settings discarded)
PY311 OFF Build using Python 3.11 PY312 ON Build using Python 3.12
Package Dependencies by Type
Build (only) python312:dev:std
python-pip:single:v12
autoselect-python:single:std
Build and Runtime python312:primary:std
Runtime (only) python-click:single:v12
python-redis:single:v12
Download groups
main mirror://PYPIWHL/46/35/db396caf7cfe71a9e661cea520b276f1472df25015e7cb9143c65a1dca6d
Distribution File Information
52e619f6cb469b00e04da74305045d244b75fecb2ecaa4f26422add57d3c5f09 90911 rq-1.16.2-py3-none-any.whl
Ports that require python-rq:v12
python-django-rq:v12 Django integration of Redis Queue (3.12)
python-rq-scheduler:v12 Job scheduling capabilities to Redis Queue (3.12)