rq is a distributed task queue and background worker system for Python that uses a Redis backend to decouple task submission from execution. It functions as a reliable message queue and task scheduler, allowing Python functions or asyncio coroutines to be processed asynchronously across multiple worker processes.
The project distinguishes itself through reliable queuing mechanisms that prevent job loss during worker crashes using atomic operations. It provides specialized orchestration capabilities, including the prevention of duplicate jobs, job execution prioritization, and the ability to manage worker lifecycles via real-time control signals.
The system covers a broad range of automation capabilities, including periodic and recurring job scheduling via cron syntax and the management of complex workflows through job dependency tracking and retry logic. It also supports job status tracking, result capture, and configurable job serialization.
Worker pool orchestration and process control are managed through a command-line interface.