Django-RMQ Общее
Что такое Django-RMQ в двух словах
Django-RMQ предоставляет обёртки и инструменты для работы с RabbitMQ в Django-проектах через Pika.
Это не полноценная очередь задач и не замена Celery. Это лёгкий интеграционный слой для проектов, которым нужно публиковать сообщения, потреблять сообщения и держать инфраструктурный код RabbitMQ в порядке внутри Django-приложения.
Обзор возможностей
- Конфигурация —
RABBITMQ_CONNECTIONSвsettings.py; одна запись на каждый alias брокера. - Продюсеры — публикация сообщений, режим декоратора, персистентная доставка, publisher confirms.
- Консьюмеры — регистрация обработчиков, явный ack/nack, экспоненциальная задержка переподключения.
- Топология —
QueueConfig, функции настройки, dead-letter routing. - Реестры —
ConsumersRegistryиSetupRegistryдля каждого alias. - Management-команды —
setup_rabbitmq_topologyиstart_consumers. - Надёжность — доставка at-least-once, mandatory routing, самовосстановление продюсера, DLX.
- Несколько подключений — несколько alias'ов брокера через параметр
using=. - Справочник API — полные сигнатуры и описание параметров для каждого публичного символа.
- Тестирование — юнит-тесты с замоканным Pika; интеграционные тесты с реальным брокером.
Установка
Установите пакет:
pip install django-rmq
Добавьте 'django_rmq' в INSTALLED_APPS и добавьте блок RABBITMQ_CONNECTIONS в settings.py. Смотрите
руководство Начало работы для минимальной конфигурации.
Тестирование
Смотрите страницу Тестирование для инструкций по запуску юнит- и интеграционных тестов.