rq
RQ is a simple, lightweight, library for creating background jobs, and processing them.
Decision gist · record as of 2026-08-14
Yes. RQ is production-stable, actively maintained, has no known vulnerabilities, and low install friction. It solves a common problem (background job processing) with a straightforward API and reasonable defaults. The pickle security warning is documented and mitigated by using JSONSerializer for untrusted inputs. Suitable for projects of any size that need job queueing backed by Redis.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a running Redis (>= 5) or Valkey (>= 7.2) instance; rq will not work without it.
- Python >= 3.10 required.
- Low install friction with a pure-Python wheel.
License · maintenance · safety
BSD-2-Clause (permissive) — BSD-2-Clause (permissive) allows commercial use, modification, and distribution with minimal restrictions. Suitable for proprietary projects.
last release 2026-06-20 (55 days) · last repo commit 2026-08-14 · 10,668 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 12,382,716 downloads/mo, #1,321 on PyPI
Alternatives
Verify before relying
pip install rq
from redis import Redis
from rq import Queue
queue = Queue(connection=Redis())
job = queue.enqueue(my_function, arg1, arg2)- Whether pickle deserialization security risk (noted in docs) affects typical production deployments or only untrusted Redis sources
- Performance overhead of Worker vs SimpleWorker in typical real-world workloads beyond the microbenchmark cited
What it is and what it does
RQ is a job queue library that lets you offload long-running or blocking function calls to background workers. You define a function, enqueue it with arguments, and RQ stores the job in Redis; separate worker processes pick up and execute jobs asynchronously. It supports job prioritization across multiple queues, scheduled execution at specific times or intervals, cron-style scheduling, automatic retries on failure, and webhooks to notify external systems when jobs finish or fail.
The library is designed for low barrier to entry—basic usage requires only Redis and a few lines of Python—while scaling to high-volume systems. It integrates into web frameworks easily and handles job deduplication, repeating jobs with configurable intervals, and custom serializers. Workers can run as single processes or in pools, and the package includes built-in scheduling via the `rq cron` command.
Use it for
- Send emails or notifications asynchronously without blocking web requests
- Schedule periodic maintenance tasks (database cleanup, report generation) using cron syntax or fixed intervals
- Process long-running computations (image resizing, data analysis) in background workers while keeping the web tier responsive
- Retry failed jobs automatically with configurable backoff intervals
- Prioritize urgent tasks by enqueueing them to high-priority queues that workers process first
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
RQ is production-stable, actively maintained, has no known vulnerabilities, and low install friction. It solves a common problem (background job processing) with a straightforward API and reasonable defaults. The pickle security warning is documented and mitigated by using JSONSerializer for untrusted inputs. Suitable for projects of any size that need job queueing backed by Redis.
Install
rq on PyPI
Before you install
Low install friction with a pure-Python wheel. Active maintenance with recent releases; last commit 2026-08-14. Requires Redis >= 5 or Valkey >= 7.2 as a runtime dependency, not bundled.
Requires a running Redis (>= 5) or Valkey (>= 7.2) instance; rq will not work without it. Python >= 3.10 required.
License in practice
BSD-2-Clause (permissive) allows commercial use, modification, and distribution with minimal restrictions. Suitable for proprietary projects.
Quickstart
pip install rq
from redis import Redis
from rq import Queue
queue = Queue(connection=Redis())
job = queue.enqueue(my_function, arg1, arg2)
Verify before relying
- Whether pickle deserialization security risk (noted in docs) affects typical production deployments or only untrusted Redis sources
- Performance overhead of Worker vs SimpleWorker in typical real-world workloads beyond the microbenchmark cited
Package facts
| License | BSD-2-Clause permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesclickcroniterredis |
| Maintenance | Actively maintained 55 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 12,382,716 / month, #1,321 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: End Users/DesktopIntended Audience :: Information TechnologyIntended Audience :: Science/ResearchIntended Audience :: System AdministratorsLicense :: OSI Approved :: BSD LicenseOperating System :: MacOSOperating System :: POSIXOperating System :: UnixProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Topic :: InternetTopic :: Scientific/EngineeringTopic :: Software Development :: Libraries :: Python ModulesTopic :: System :: Distributed ComputingTopic :: System :: MonitoringTopic :: System :: Systems Administration |
Evidence: rq-2.10.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “job retry and retry logic”
- rqRQ is a Python library for queueing jobs and processing them in the…
- nflx-genie-clientA Python client library for interacting with Netflix Genie, a…
- retryProvides a decorator and function wrapper for retrying failed…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also bullmq · django-rq · faktory · huey · rq-dashboard · rq-scheduler · saq · redis-simple-mq · arq · dramatiq