Flask-RMQ
Предсказуемая интеграция RabbitMQ с Flask без механики task queue
Нативно для Flask
App factory, application context и Click-команды внутри стандартного flask CLI.
Надёжность по умолчанию
Publisher confirms, обязательная маршрутизация, persistent-сообщения, DLX и ограниченный reconnect.
Явный AMQP
Обработчик сам определяет момент ack, а топология описывается обычными идемпотентными функциями.
Для чего нужна Flask-RMQ
Flask-RMQ убирает повторяющийся и чувствительный к ошибкам код вокруг Pika, не скрывая AMQP. Библиотека подходит Flask-сервисам, которые публикуют доменные события, читают очереди, объявляют топологию или работают с несколькими RabbitMQ-брокерами.
Это не планировщик задач и не замена Celery: здесь нет скрытого формата сообщений, автоматической сериализации и result backend.
Producer и consumer используют разные thread-local соединения. Это защищает от повторного входа в I/O loop Pika при публикации непосредственно из обработчика.
| Компонент | Назначение |
|---|---|
FlaskRMQ | Читает конфигурацию, создаёт состояние alias-ов, подключает CLI. |
Producer | Persistent-публикация с confirms, mandatory routing и одной retry-попыткой. |
Consumer | QoS, reconnect с backoff, graceful stop и DLX-friendly обработка ошибок. |
QueueConfig | Durable-очередь и параметры dead-letter routing. |
| Реестры | Callback-и топологии и consumers для Click-команд. |
Начните с .