overview
Was ist RQ (Redis Queue)?
RQ (Redis Queue) ist eine Bibliothek zur Hintergrund-Jobverarbeitung, die von den RQ Project Contributors entwickelt wurde und es Entwicklern, Webanwendungsentwicklern und Systemarchitekten ermöglicht, Jobs in eine Warteschlange einzureihen und diese im Hintergrund mit Workern zu verarbeiten. Sie nutzt Redis oder Valkey als Backend zum Speichern von Jobs und zur Verwaltung der Warteschlange, konzipiert für einen niedrigen Einstiegshürde und Skalierbarkeit. RQ ermöglicht es Python-Anwendungen, zeitaufwändige oder blockierende Aufgaben an Hintergrundprozesse auszulagern, wodurch sichergestellt wird, dass die Hauptanwendung reaktionsschnell bleibt. Sie arbeitet nach dem First-In, First-Out (FIFO)-Prinzip für die Jobverarbeitung.
Hauptanwendungsfälle für RQ (Redis Queue) umfassen die asynchrone Jobverarbeitung für langwierige Operationen wie das Senden von E-Mails, das Generieren von Berichten, das Verarbeiten von Bildern oder das Handhaben von Dateiuploads, ohne die Haupt-Webanwendung zu blockieren. Es wird auch in verteilten Systemen eingesetzt, um Aufgaben zu verwalten, die von mehreren Workern über verschiedene Knoten hinweg verarbeitet werden. RQ verbessert die API-Reaktionsfähigkeit für Frameworks wie Flask, Django und FastAPI, indem es langlaufende Aufgaben in Hintergrund-Warteschlangen verschiebt. Mit der rq-scheduler-Erweiterung können Aufgaben so geplant werden, dass sie zu bestimmten Zeiten oder nach einer Verzögerung ausgeführt werden, was die Automatisierungsfähigkeiten der Anwendung verbessert. Jüngste Entwicklungen umfassen RQ 2.4.1 (20. Juli 2025), das einen CREATED Job-Status einführte, und RQ 2.0 (28. Oktober 2024), das Unterstützung für mehrere Job-Ausführungen und AWS Elasticache Serverless Redis-Kompatibilität hinzufügte. RQ 1.12.0 (15. Januar 2023) begann mit der Speicherung mehrerer Job-Ausführungsergebnisse, was Redis >= 5.0 Redis Streams erfordert.