/
tegdif
/
cism
Обзор
Документация
Войти
/
tegdif
/
cism
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main.py
51 строка
2 KB
tegdif
first_commit
28 июл 2026, 08:54
28 июл 2026, 08:54
8ecbd07
Код
Авторство
О чём код?
import logging from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from src.api.v1.tasks import router as tasks_router from src.core.rabbitmq import rabbitmq_client logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", ) logger = logging.getLogger(__name__) @asynccontextmanager async def lifespan(app: FastAPI): """Жизненный цикл приложения: подключение к RabbitMQ при старте, отключение при остановке.""" logger.info("Запуск приложения...") await rabbitmq_client.connect() logger.info("RabbitMQ подключён") yield logger.info("Остановка приложения...") await rabbitmq_client.close() logger.info("RabbitMQ отключён") app = FastAPI( title="Async Task Management Service", description="Сервис для асинхронной обработки задач с поддержкой приоритетов и отказоустойчивости", version="1.0.0", lifespan=lifespan, ) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) @app.get("/health", tags=["health"]) async def health_check(): """Эндпоинт healthcheck для мониторинга и оркестрации.""" return {"status": "healthy", "service": "async-task-manager"} app.include_router(tasks_router)