Конфигурация
Конфигурация
FlaskRMQ.init_app() читает app.config['RABBITMQ_CONNECTIONS']:
app.config['RABBITMQ_CONNECTIONS'] = {
'default': {
'HOST': 'rabbitmq.internal',
'PORT': 5672,
'VIRTUAL_HOST': '/orders',
'USER': 'orders-service',
'PASSWORD': os.environ['RABBITMQ_PASSWORD'],
'HEARTBEAT': 600,
'BLOCKED_CONNECTION_TIMEOUT': 300,
'RECONNECT_INITIAL_BACKOFF': 1.0,
'RECONNECT_MAX_BACKOFF': 30.0,
},
}| Ключ | Значение по умолчанию | Назначение |
|---|---|---|
HOST | обязательный | Имя или IP брокера. |
PORT | 5672 | AMQP-порт. |
VIRTUAL_HOST | / | RabbitMQ vhost. |
USER / PASSWORD | guest | Учётные данные; в production берите из secrets. |
HEARTBEAT | 600 | Heartbeat в секундах. |
BLOCKED_CONNECTION_TIMEOUT | 300 | Таймаут resource alarm/block. |
RECONNECT_INITIAL_BACKOFF | 1.0 | Первая задержка consumer reconnect. |
RECONNECT_MAX_BACKOFF | 30.0 | Верхняя граница backoff. |
Поддерживаются и lowercase-ключи. Значения проверяются при старте приложения.
Несколько брокеров
Каждый верхнеуровневый ключ — независимый alias. При одном alias параметр using можно не писать. При двух и более он обязателен:
Producer(queue='audit', using='analytics')
Consumer(queue='audit', using='analytics')
get_setup_registry(using='analytics').register(setup_audit)Неявный выбор брокера опасен ошибочной маршрутизацией данных, поэтому библиотека поднимает ConfigurationError.
Accessors используют текущий Flask application context. Click-команда сама создаёт context в каждом consumer thread; current_app и расширения Flask внутри handler доступны.