Freedom251 › Task Queue Software
RQ (Redis Queue)

What RQ (Redis Queue) is
RQ (Redis Queue) is a Python library for sending jobs to background workers, where Python function calls run asynchronously. It is self-hosted and uses Redis version 5 or later, or Valkey version 7.2 or later, to store queued work. Jobs can be scheduled or repeated, and failed jobs can be retried. RQ also supports bulk enqueueing, job groups, dependencies, callbacks, unique jobs and concurrency rate limits. Unique jobs cannot be used with job dependencies. Failed jobs are kept in a registry with exception details, and custom exception handlers are available.
For monitoring, RQ has an `rq info` console command; the separately distributed RQ Dashboard provides a web-based frontend. Documentation covers Django, including the django-rq package, and usage patterns involving Heroku, Sentry, Supervisor and systemd. RQ is open source under the BSD license and is maintained by Stamps, an Indonesian CRM company. Its default pickle serializer is intended only for trusted Redis instances; JSON is another option. Workers need a system that implements `fork()`, and Windows workers require Windows Subsystem for Linux and a bash shell. Workers must be able to import job functions, and producers and workers must share source code.
Who it suits
RQ suits Python developers who want to queue background work in a self-hosted setup backed by Redis or Valkey. Its scheduling, retry and job grouping features also suit teams coordinating asynchronous tasks, including those using Django.
What it does well
- Runs Python function calls asynchronously in worker processes.
- Supports scheduled and repeating jobs, retries and custom exception handlers.
- Provides job groups, dependencies, callbacks and bulk enqueueing.
- Includes concurrency rate limits and unique jobs.
- BSD-licensed and available free.
What to know first
- Requires Redis 5+ or Valkey 7.2+ as its backend.
- Workers need `fork()`; Windows requires WSL and bash.
- Pickle serialization makes it Python-only and unsuitable for untrusted Redis instances.
- Unique jobs cannot be combined with job dependencies.
Limits
RQ is free under the BSD license. It requires Redis 5 or later or Valkey 7.2 or later, workers require `fork()`, and Windows requires WSL and bash; unique jobs cannot be combined with dependencies.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| RQ (Redis Queue) | Open source · BSD license · Requires Redis >= 5 or Valkey >= 7.2 | Free |
As python-rq.org lists them, read 8 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the RQ website and install it in a Python environment.
- Set up Redis 5 or later, or Valkey 7.2 or later.
- Make sure the worker can import the job function and shares source code with the producer.
- Run workers on a system that implements `fork()`; Windows requires Windows Subsystem for Linux and bash.
- Use the `rq info` command to monitor queues, or use the separately distributed RQ Dashboard.
Verdict
Choose RQ if you need a free, self-hosted Python queue with scheduling, retries and worker-based execution. Look elsewhere if you need a portable job protocol or workers on Windows without WSL and bash.
Questions
How much does RQ cost?
RQ is free, with a listed plan of $0.
Is RQ open source?
Yes. RQ is open source under the BSD license.
What backend does RQ require?
It requires Redis version 5 or later, or Valkey version 7.2 or later.
Does RQ support scheduled jobs and retries?
Yes. It supports scheduled and repeating jobs, as well as retries for failed jobs.
Can I use RQ on Windows?
Windows workers require Windows Subsystem for Linux and a bash shell.
Who maintains RQ?
RQ is maintained by Stamps, described as an Indonesian CRM company.
Facts from RQ (Redis Queue)'s own pages
- Backend
- RQ requires Redis version 5 or later, or Valkey version 7.2 or later. · python-rq.org, 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, 7 Oct 2026
- Framework integration
- The documentation describes using RQ with Django, including through the django-rq package. · python-rq.org, 7 Oct 2026
- Headquarters
- Jakarta, Indonesia · python-rq.org, 28 Sept 2026
- Integrations
- The project documents usage patterns for Heroku, Django, Sentry, Supervisor, and systemd. · python-rq.org, 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, 8 Oct 2026
- Job execution
- RQ runs Python function calls asynchronously in background worker processes. · python-rq.org, 7 Oct 2026
- Job workflows
- RQ supports job dependencies, callbacks, bulk enqueueing, and grouping jobs under one ID. · python-rq.org, 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, 7 Oct 2026
- Maintainer
- RQ is maintained by Stamps, described on the project site as an Indonesian CRM company. · python-rq.org, 8 Oct 2026
- Monitoring
- RQ provides queue monitoring and can send webhooks when jobs finish or fail. · python-rq.org, 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, 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, 7 Oct 2026
- Purpose
- RQ is a Python library for queueing jobs and processing them in the background with workers. · python-rq.org, 8 Oct 2026
- Queue features
- RQ supports bulk enqueueing, job groups, dependencies, unique jobs, and concurrency rate limits. · python-rq.org, 7 Oct 2026
- Scheduling and retries
- RQ supports scheduling jobs for later, repeating jobs, and retrying failed jobs. · python-rq.org, 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, 7 Oct 2026
- Security and license
- RQ is open sourced under the BSD license. · python-rq.org, 8 Oct 2026
- Serialization limit
- RQ uses pickle to serialize jobs, making it a Python-only system without a portable protocol. · python-rq.org, 8 Oct 2026
- Storage
- RQ is backed by Redis or Valkey and requires Redis >= 5 or Valkey >= 7.2. · python-rq.org, 8 Oct 2026
- Support
- The project directs users to its Discord for help and discussion about contributions and the project's future. · python-rq.org, 8 Oct 2026
- Support community
- The project links to an RQ Discord community chat. · python-rq.org, 7 Oct 2026
- Uniqueness and rate limits
- RQ supports unique jobs and concurrency rate limits; unique jobs are not supported with job dependencies. · python-rq.org, 8 Oct 2026
- Worker platform limit
- Workers require systems that implement fork(); Windows requires Windows Subsystem for Linux and a bash shell. · python-rq.org, 8 Oct 2026
Where RQ (Redis Queue) stands on Freedom251
- Task Queue Software#23 of 37