RQ (Redis Queue)
Simple Python job queue backed by Redis with minimal configuration — enqueue functions and process them with workers.
Evaluated Mar 06, 2026
(0d ago)
vcurrent
⚙ Agent Friendliness
67
/ 100
Can an agent use this?
🔒 Security
28
/ 100
Is it safe for agents?
⚡ Reliability
61
/ 100
Does it work consistently?
Score Breakdown
⚙ Agent Friendliness
MCP Quality
--
Documentation
85
Error Messages
80
Auth Simplicity
100
Rate Limits
100
🔒 Security
TLS Enforcement
0
Auth Strength
0
Scope Granularity
0
Dep. Hygiene
80
Secret Handling
78
Pickle serialization used for job arguments — only enqueue trusted data to prevent RCE via deserialization.
⚡ Reliability
Uptime/SLA
0
Version Stability
83
Breaking Changes
82
Error Recovery
80
Best When
Best for simple Python background job processing when Celery feels over-engineered and you already use Redis.
Avoid When
Avoid when you need complex retry strategies, workflow DAGs, or non-Redis broker support.
Use Cases
- • Quickly add async background processing to Flask/Django apps without Celery complexity
- • Offload slow API calls from request handlers to Redis-backed worker processes
- • Build simple fanout patterns by enqueuing multiple functions on different queues
- • Process agent-generated tasks with priority queues (high/default/low)
- • Implement delayed job execution with enqueue_in() for scheduled future work
Not For
- • Complex workflow DAGs with dependencies between tasks
- • High-throughput task processing where broker overhead matters
- • Non-Redis brokers — RQ only supports Redis as backend
Interface
REST API
No
GraphQL
No
gRPC
No
MCP Server
No
SDK
Yes
Webhooks
No
Authentication
Methods:
OAuth: No
Scopes: No
Library — auth via Redis connection URL (redis://:password@host:port/db).
Pricing
Model: open_source
Free tier:
Yes
Requires CC:
No
BSD licensed. Requires a Redis instance.
Agent Metadata
Pagination
none
Idempotent
Partial
Retry Guidance
Documented
Known Gotchas
- ⚠ Functions must be importable at worker startup — lambdas and closures cannot be enqueued
- ⚠ Job results stored in Redis expire after 500 seconds by default — increase result_ttl for long-lived result access
- ⚠ Burst mode workers (--burst) exit after queue is empty — not suitable for long-running daemon workers without restart loop
- ⚠ RQ does not support task chaining natively — use callbacks or separate queues for dependent task patterns
- ⚠ Failed jobs require manual requeueing via rq requeue or job.requeue() — no automatic retry without rq-retry extension
Alternatives
Full Evaluation Report
Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for RQ (Redis Queue).
$99
Scores are editorial opinions as of 2026-03-06.