overview
Что такое RQ (Redis Queue)?
RQ (Redis Queue) — это библиотека для фоновой обработки задач, разработанная RQ Project Contributors, которая позволяет разработчикам, разработчикам веб-приложений и системным архитекторам ставить задачи в очередь и обрабатывать их в фоновом режиме с помощью воркеров. Она использует Redis или Valkey в качестве своего бэкенда для хранения задач и управления очередью, разработанная для низкого порога входа и масштабируемости. RQ позволяет приложениям Python переносить трудоемкие или блокирующие задачи в фоновые процессы, гарантируя, что основное приложение остается отзывчивым. Она работает по принципу First-In, First-Out (FIFO) для обработки задач.
Основные варианты использования RQ (Redis Queue) включают асинхронную обработку длительных операций, таких как отправка электронных писем, генерация отчетов, обработка изображений или загрузка файлов, без блокировки основного веб-приложения. Она также используется в распределенных системах для управления задачами, обрабатываемыми несколькими воркерами на различных узлах. RQ улучшает отзывчивость API для фреймворков, таких как Flask, Django и FastAPI, перемещая длительные задачи в фоновые очереди. С расширением rq-scheduler задачи могут быть запланированы для выполнения в определенное время или после задержки, что расширяет возможности автоматизации приложений. Последние разработки включают RQ 2.4.1 (20 июля 2025 г.), который представил статус задачи CREATED, и RQ 2.0 (28 октября 2024 г.), который добавил поддержку множественного выполнения задач и совместимость с AWS Elasticache Serverless Redis. RQ 1.12.0 (15 января 2023 г.) начал хранить результаты множественного выполнения задач, требуя Redis >= 5.0 Redis Streams.