Gearman vs RQ (Redis Queue)
Gearman
gearman.orgRQ (Redis Queue)
python-rq.orgSide by side
| Figure | Gearman | RQ (Redis Queue) |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | Yes | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 2 | 1 |
| Spec score · Task Queue Software | 8.8 (#4) | 8.2 (#9) |
| Security | The download page says the pure Perl Gearman client and worker API supports SSL. | 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 project directs users to its Google Groups mailing list and Matrix chat. | The project directs users to its Discord for help and discussion about contributions and the project's future. |
Plans
In their own words
Gearman
Gearman is a free, self-hosted application framework for distributing work across machines or processes. A client submits jobs, a job server routes them, and a worker performs them, allowing parallel processing and load balancing. Jobs can run asynchronously in the background or receive priorities. Clients and workers may use different language interfaces when they understand the workload; listed interfaces include C, C#/.NET, Go, Java, Node.js, PHP, Perl, Python, Ruby, Rust, and Lisp. Messages can reach 4 GB, with chunking for larger messages. Clients and workers can connect to multiple job servers and fail over when one dies. The C job server supports persistent queues. MySQL and PostgreSQL functions expose client calls to queries, triggers, and stored procedures, while the pure Perl API supports SSL. Gearman runs on Linux and Windows, offers API access, and is licensed under BSD. GearmanSharp is incomplete.
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.