Graphile Worker vs RQ (Redis Queue)
Graphile Worker
worker.graphile.orgRQ (Redis Queue)
python-rq.orgSide by side
| Figure | Graphile Worker | RQ (Redis Queue) |
|---|---|---|
| Price from | $25/mo | 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 | 7 | 1 |
| Spec score · Task Queue Software | 9.1 (#1) | 8.2 (#9) |
| Purpose | Graphile Worker stores jobs in PostgreSQL and executes them on Node.js so background work does not hold up application responses. | RQ is a Python library for queueing jobs and processing them in the background with workers. |
| Security | The connection documentation describes SSL-encrypted PostgreSQL connections and CA certificate configuration. | 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 | Community help is provided through Graphile Discord and GitHub, with paid professional support available. | The project directs users to its Discord for help and discussion about contributions and the project's future. |
Plans
Graphile Worker
- Graphile WorkerFree
- Graphile Worker OSSFree
- Worker Pro launch offer$25 a month
- Worker Pro Launch Offer$25 a month
- Worker Pro regular price$100 a month
- Worker Pro regular pricing$100 a month
- Private Advisor sponsorship$899 a month
In their own words
Graphile Worker
Graphile Worker stores jobs in PostgreSQL and runs them on Node.js, so background work does not hold up application responses. It is free and open source under the MIT license, and is self-hosted in standalone or embedded mode, including within an application server's Node.js process. Jobs execute at least once, and failed jobs are retried automatically with exponential backoff. Recurring tasks can use crontab-like schedules with optional backfill; other controls include de-duplication by unique job_key and batch jobs that append data to queued jobs. The feature list says execution typically begins in under 3ms using PostgreSQL LISTEN/NOTIFY. The current version requires PostgreSQL 12+ and Node 22.18+. Installation is supported through npm, Yarn or pnpm, and global installation is not recommended. Database connections can use SSL encryption and CA certificate configuration. Community help is available through Graphile Discord, with professional support contracts also offered. Worker Pro adds crashed-worker recovery and live migration to new Worker versions.
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.