Миграция с Django
Миграция с Django
Messaging-модель сохраняется, меняется lifecycle и CLI:
| Django-приложение | Flask-RMQ |
|---|---|
AppConfig.ready() | FlaskRMQ.init_app(app) |
settings.RABBITMQ_CONNECTIONS | app.config['RABBITMQ_CONNECTIONS'] |
manage.py setup_rabbitmq | flask --app ... rmq setup |
manage.py start_consumers | flask --app ... rmq consume |
ImproperlyConfigured | flask_rmq.ConfigurationError |
close_old_connections() | ORM-specific cleanup в handler |
Producer, Consumer, QueueConfig, aliases, registries, publisher confirms, DLX и reconnect остаются концептуально такими же.
Регистрацию из AppConfig.ready() перенесите в Flask factory после config и init_app:
def create_app():
app = Flask(__name__)
app.config.from_object(Config)
rmq.init_app(app)
with app.app_context():
get_setup_registry().register(setup_topology)
get_consumers_registry().register(consumer)
return appConsumer thread получает application context, но не request context. Доступны current_app и extension proxies; request и cookie session недоступны. Необходимые данные передавайте в message contract или загружайте по стабильному ID.