Обёртки и инструменты для RabbitMQ в Django на базе Pika
Готов к продакшену
Django-RMQ создан для Django-проектов, которым нужна предсказуемая интеграция с RabbitMQ в реальных приложениях.
Нативная интеграция с Django
Настройки подключения к RabbitMQ и код обмена сообщениями находятся рядом с конфигурацией Django-проекта.
Легко расширяется
Строите продюсеров и консьюмеров поверх небольших обёрток вместо того, чтобы разбрасывать boilerplate-код Pika по всей кодовой базе.
Строгая типизация
Django-RMQ поставляется с поддержкой типов, так что редакторы и type-checker'ы помогают при работе с кодом обмена сообщениями.
Что такое 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. - —
setup_rabbitmq_topologyиstart_consumers. - — доставка at-least-once, mandatory routing, самовосстановление продюсера, DLX.
- — несколько alias'ов брокера через параметр
using=. - — полные сигнатуры и описание параметров для каждого публичного символа.
- — юнит-тесты с замоканным Pika; интеграционные тесты с реальным брокером.
Установка
Установите пакет:
pip install django-rmqДобавьте 'django_rmq' в INSTALLED_APPS и добавьте блок RABBITMQ_CONNECTIONS в settings.py. Смотрите руководство для минимальной конфигурации.
Тестирование
Смотрите страницу для инструкций по запуску юнит- и интеграционных тестов.