- Home
- Task Queue Software
- RQ (Redis Queue)
RQ (Redis Queue)
Jakarta, Indonesia
What it is
RQ (Redis Queue) is an open-source Python library for placing jobs in a queue and running them asynchronously in background workers. It requires Redis version 5 or later, or Valkey version 7.2 or later, and is self-hosted under the BSD license. Its workflow tools include scheduled and repeating jobs, retries, bulk enqueueing, job groups, dependencies, unique jobs, and concurrency rate limits; unique jobs cannot be used with job dependencies. Failed work is kept in a registry with exception details, and custom exception handlers are supported. The `rq info` command provides console monitoring, while a separately distributed RQ Dashboard offers a web monitoring interface. Documentation covers Django use, including django-rq, and patterns involving Heroku, Sentry, Supervisor, and systemd. RQ uses pickle serialization by default, which the project warns should be used only with trusted Redis instances; JSON is an alternative. Workers need a system implementing `fork()`, so Windows requires Windows Subsystem for Linux and a bash shell. Workers must be able to import job functions, and producers and workers need to share source code. RQ is free, maintained by Stamps, and links to a Discord community.
For and against
For
- Schedules and repeats jobs, with retries for failures.
- Supports job dependencies, groups, bulk enqueueing, and rate limits.
- Failed jobs retain exception details.
- BSD-licensed and free to use.
- Django usage patterns are documented.
Against
- Requires Redis 5+ or Valkey 7.2+.
- Workers require a system with `fork()`.
- Windows workers require WSL and a bash shell.
- Default pickle serialization is intended only for trusted Redis instances.
The verdict
RQ provides Python background job processing with scheduling, retries, and queue workflow controls. Its Redis or Valkey requirement, fork-dependent workers, and Python-specific serialization shape where it can be used.
Who it suits
RQ suits Python developers who need self-hosted background job processing backed by Redis or Valkey. It may fit teams using Django or the documented deployment and monitoring patterns.
Plans and prices
RQ (Redis Queue)
Open source · BSD license · Requires Redis >= 5 or Valkey >= 7.2
Read 8 Oct 2026 · python-rq.org
On the record
- Backend
- RQ requires Redis version 5 or later, or Valkey version 7.2 or later.python-rq.org · read 7 Oct 2026
- Failure handling
- Failed jobs are stored in the FailedJobRegistry with exception information, and RQ supports retries and custom exception handlers.python-rq.org · read 7 Oct 2026
- Framework integration
- The documentation describes using RQ with Django, including through the django-rq package.python-rq.org · read 7 Oct 2026
- Integrations
- The project documents usage patterns for Heroku, Django, Sentry, Supervisor, and systemd.python-rq.org · read 8 Oct 2026
- Job code requirements
- The worker must be able to import the job function, and the worker and job producer must share the same source code.python-rq.org · read 8 Oct 2026
- Job execution
- RQ runs Python function calls asynchronously in background worker processes.python-rq.org · read 7 Oct 2026
- Job workflows
- RQ supports job dependencies, callbacks, bulk enqueueing, and grouping jobs under one ID.python-rq.org · read 8 Oct 2026
- License and maintainer
- RQ is open source under the BSD license and is maintained by Stamps, described as an Indonesian CRM company.python-rq.org · read 7 Oct 2026
- Maintainer
- RQ is maintained by Stamps, described on the project site as an Indonesian CRM company.python-rq.org · read 8 Oct 2026
- Monitoring
- RQ provides queue monitoring and can send webhooks when jobs finish or fail.python-rq.org · read 8 Oct 2026
- Operating system limit
- RQ workers require a system that implements `fork()`; the documentation says Windows workers require Windows Subsystem for Linux and a bash shell.python-rq.org · read 7 Oct 2026
- Protocol limit
- RQ relies on pickle serialization and is a Python-only system rather than using a portable protocol.python-rq.org · read 7 Oct 2026
- Purpose
- RQ is a Python library for queueing jobs and processing them in the background with workers.python-rq.org · read 8 Oct 2026
- Queue features
- RQ supports bulk enqueueing, job groups, dependencies, unique jobs, and concurrency rate limits.python-rq.org · read 7 Oct 2026
- Scheduling and retries
- RQ supports scheduling jobs for later, repeating jobs, and retrying failed jobs.python-rq.org · read 8 Oct 2026
- Security
- RQ warns that its default pickle serializer is not secure and advises using it only with trusted Redis instances; JSON is an alternative serializer.python-rq.org · read 7 Oct 2026
- Security and license
- RQ is open sourced under the BSD license.python-rq.org · read 8 Oct 2026
- Serialization limit
- RQ uses pickle to serialize jobs, making it a Python-only system without a portable protocol.python-rq.org · read 8 Oct 2026