overview
O que é RQ (Redis Queue)?
RQ (Redis Queue) é uma biblioteca de processamento de tarefas em segundo plano desenvolvida pelos RQ Project Contributors que permite a desenvolvedores, desenvolvedores de aplicações web e arquitetos de sistemas enfileirar tarefas e processá-las em segundo plano com workers. Ela utiliza Redis ou Valkey como seu backend para armazenar tarefas e gerenciar a fila, projetada para baixa barreira de entrada e escalabilidade. RQ permite que aplicações Python descarreguem tarefas demoradas ou bloqueadoras para processos em segundo plano, garantindo que a aplicação principal permaneça responsiva. Ela opera com base no princípio First-In, First-Out (FIFO) para o processamento de tarefas.
Os principais casos de uso para RQ (Redis Queue) incluem processamento assíncrono de tarefas para operações demoradas, como envio de e-mails, geração de relatórios, processamento de imagens ou manipulação de uploads de arquivos sem bloquear a aplicação web principal. Também é empregado em sistemas distribuídos para gerenciar tarefas processadas por múltiplos workers em vários nós. RQ melhora a responsividade da API para frameworks como Flask, Django e FastAPI, movendo tarefas de longa duração para filas em segundo plano. Com a extensão rq-scheduler, as tarefas podem ser agendadas para serem executadas em horários específicos ou após um atraso, aprimorando as capacidades de automação da aplicação. Desenvolvimentos recentes incluem RQ 2.4.1 (20 de julho de 2025), que introduziu um status de Job CREATED, e RQ 2.0 (28 de outubro de 2024), que adicionou suporte para múltiplas execuções de tarefas e compatibilidade com AWS Elasticache Serverless Redis. RQ 1.12.0 (15 de janeiro de 2023) começou a armazenar múltiplos resultados de execução de tarefas, exigindo Redis >= 5.0 Redis Streams.