Hangfire vs RQ (Redis Queue)
Hangfire
hangfire.ioRQ (Redis Queue)
python-rq.orgSide by side
| Figure | Hangfire | RQ (Redis Queue) |
|---|---|---|
| Price from | $41.67/mo | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | Yes | — |
| Web | Yes | — |
| Windows | Yes | — |
| Linux | Yes | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 4 | 1 |
| Spec score · Task Queue Software | 9.1 (#2) | 8.2 (#9) |
| Headquarters | Ahtri 12, Tallinn, Harju County 15551, Estonia | Jakarta, Indonesia |
| Integrations | The documentation lists integrations with ASP.NET, ASP.NET Core, console applications, Windows Services, WCF, Nancy, and ServiceStack. | The project documents usage patterns for Heroku, Django, Sentry, Supervisor, and systemd. |
| Purpose | Hangfire performs background processing in .NET and .NET Core applications without requiring a Windows Service or separate process. | RQ is a Python library for queueing jobs and processing them in the background with workers. |
Plans
In their own words
Hangfire
Hangfire runs background jobs in.NET and.NET Core applications without requiring a Windows Service or a separate process. It supports fire-and-forget, delayed and recurring jobs, as well as continuations, and stores jobs persistently. SQL Server and Redis are officially supported storage options, with other community-driven implementations also available. A built-in web dashboard shows processing activity and each job's state. Hangfire describes its processing as at-least-once, with automatic retries after unhandled exceptions or application termination. It can run across multiple machines and coordinates their work automatically. Listed integrations include ASP.NET, ASP.NET Core, console applications, Windows Services, WCF, Nancy and ServiceStack. Hangfire Core is open source under LGPLv3 and free for commercial use. The Open plan is free. Startup costs $500 a year, Business $1,500 a year, and Enterprise $4,500 a year, all billed per organization annually. Pro adds batches and batch continuations; Ace adds throttling features for concurrency and rate limits. Dashboard access is local by default, so remote access needs authorization configuration.
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.