Resque vs RQ (Redis Queue)
Resque
github.comRQ (Redis Queue)
python-rq.orgSide by side
| Figure | Resque | RQ (Redis Queue) |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Linux | — | Yes |
| API | — | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Task Queue Software | 7.2 (#31) | 8.2 (#9) |
| Failure handling | Resque logs job exceptions and supports Redis and Airbrake failure backends. | Failed jobs are stored in the FailedJobRegistry with exception information, and RQ supports retries and custom exception handlers. |
| Framework integration | Resque documents integration with Rails ActiveJob and mounting its Sinatra frontend within Rack or Rails applications. | The documentation describes using RQ with Django, including through the django-rq package. |
| Monitoring | The frontend shows worker and queue activity, usage statistics, and job failures. | RQ provides queue monitoring and can send webhooks when jobs finish or fail. |
| Purpose | Resque is a Redis-backed Ruby library for creating background jobs, placing them on multiple queues, and processing them later. | RQ is a Python library for queueing jobs and processing them in the background with workers. |
| Security | The README demonstrates a Rack frontend example that includes HTTP basic authentication. | RQ warns that its default pickle serializer is not secure and advises using it only with trusted Redis instances; JSON is an alternative serializer. |
| Support | The README directs questions to its FAQ or the project issue tracker. | The project directs users to its Discord for help and discussion about contributions and the project's future. |
Plans
In their own words
RQ (Redis Queue)
RQ (Redis Queue) is a Python library for placing jobs in queues and running them asynchronously in background worker processes. It is self-hosted, open source under the BSD license, and free. It requires Redis 5 or later, or Valkey 7.2 or later. RQ supports scheduled and repeating jobs, retries, bulk enqueueing, job groups, dependencies, unique jobs, and concurrency rate limits. Unique jobs cannot be combined with dependencies. Failed jobs are recorded with exception information, and custom exception handlers are supported. For monitoring, there is an `rq info` console command; RQ Dashboard is a separate web-based frontend. Documentation covers Django, including django-rq, as well as usage with Heroku, Sentry, Supervisor, and systemd. RQ serializes jobs with pickle by default, which the project warns is safe only with trusted Redis instances; JSON is an alternative. Workers need a system that supports `fork()`, so Windows requires Windows Subsystem for Linux and a bash shell. Workers must also be able to import job functions, and producers and workers must share source code.