overview
¿Qué es RQ (Redis Queue)?
RQ (Redis Queue) es una biblioteca de procesamiento de tareas (jobs) en segundo plano desarrollada por los RQ Project Contributors que permite a desarrolladores, desarrolladores de aplicaciones web y arquitectos de sistemas encolar tareas (jobs) y procesarlas en segundo plano con workers. Utiliza Redis o Valkey como su backend para almacenar tareas (jobs) y gestionar la cola, diseñado para una baja barrera de entrada y escalabilidad. RQ permite a las aplicaciones Python descargar tareas que consumen mucho tiempo o que son bloqueantes a procesos en segundo plano, asegurando que la aplicación principal permanezca receptiva. Opera bajo un principio First-In, First-Out (FIFO) para el procesamiento de tareas (jobs).
Los principales casos de uso para RQ (Redis Queue) incluyen el procesamiento asíncrono de tareas (jobs) para operaciones largas como enviar correos electrónicos, generar informes, procesar imágenes o gestionar cargas de archivos sin bloquear la aplicación web principal. También se emplea en sistemas distribuidos para gestionar tareas procesadas por múltiples workers a través de varios nodos. RQ mejora la capacidad de respuesta de la API para frameworks como Flask, Django y FastAPI al mover tareas de larga duración a colas en segundo plano. Con la extensión rq-scheduler, las tareas se pueden programar para ejecutarse en momentos específicos o después de un retraso, mejorando las capacidades de automatización de la aplicación. Los desarrollos recientes incluyen RQ 2.4.1 (20 de julio de 2025) que introdujo un estado de Job CREATED, y RQ 2.0 (28 de octubre de 2024) que añadió soporte para múltiples ejecuciones de tareas (jobs) y compatibilidad con AWS Elasticache Serverless Redis. RQ 1.12.0 (15 de enero de 2023) comenzó a almacenar múltiples resultados de ejecución de tareas (jobs), requiriendo Redis >= 5.0 Redis Streams.