A simple Python library for queueing jobs and processing them in the background with workers, backed by Redis/Valkey.
RQ (Redis Queue) is a simple Python library for queueing jobs and processing them in the background with workers. It allows developers to offload time-consuming tasks like sending emails, generating reports, or processing images from their main application flow, improving responsiveness and scalability. It is backed by Redis or Valkey and designed to be easy to integrate into any Python project.
Python developers building web applications or services that need to handle background tasks, from small projects to large-scale enterprise systems requiring reliable job processing.
Developers choose RQ for its simplicity, low barrier to entry, and Redis/Valkey-backed reliability, offering a lightweight alternative to more complex queueing systems like Celery while still providing essential features like priority queues, job scheduling, retries, and cron support.
Simple job queues for Python
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enqueuing jobs requires minimal code—just a Redis connection and function call, as shown in the 'Getting started' example with count_words_at_url.
Supports delayed, repeating, and cron-based jobs via enqueue_at/enqueue_in and the rq cron command, eliminating need for separate scheduler services.
Automatic retry mechanisms with customizable intervals and max attempts (Retry class) ensure resilience for transient failures without manual intervention.
Offers Worker/SpawnWorker for safe process isolation and SimpleWorker for high-speed in-process execution, allowing trade-offs based on job trust and latency needs.
Requires a dedicated Redis or Valkey instance, adding operational complexity, potential single points of failure, and extra costs for scaling.
Default process-isolated workers (Worker/SpawnWorker) incur fork/spawn overhead; while SimpleWorker is faster, the README warns it's unsafe for untrusted jobs due to crash risks.
Lacks native web dashboard or advanced monitoring; you must rely on third-party add-ons like rq-dashboard for real-time queue insights and management.
rq is an open-source alternative to the following products: