This commit is contained in:
2026-03-18 17:30:13 +01:00
parent 58a233236c
commit d80d912fb3
36 changed files with 3502 additions and 4 deletions
+20 -2
View File
@@ -13,10 +13,11 @@ from slowapi.errors import RateLimitExceeded
from slowapi.middleware import SlowAPIMiddleware
from slowapi.util import get_remote_address
from app.api.v1 import auth, permissions, tenants, users
from app.api.v1 import auth, mailboxes, permissions, tenants, users, ws
from app.config import get_settings
from app.core.logging import get_logger, setup_logging
from app.database import engine
from app.websocket.manager import redis_subscriber_loop
settings = get_settings()
logger = get_logger(__name__)
@@ -25,13 +26,28 @@ logger = get_logger(__name__)
@asynccontextmanager
async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]:
"""Gestione ciclo di vita dell'applicazione."""
import asyncio
setup_logging()
logger.info(
"🚀 PecFlow Backend avviato",
extra={"env": settings.app_env, "debug": settings.app_debug},
)
# Avvia il subscriber Redis per il forward degli eventi WebSocket
redis_task = asyncio.create_task(
redis_subscriber_loop(settings.redis_url),
name="redis-ws-subscriber",
)
yield
# Cleanup: chiudi connessioni DB
# Cleanup
redis_task.cancel()
try:
await redis_task
except asyncio.CancelledError:
pass
await engine.dispose()
logger.info("🛑 PecFlow Backend fermato")
@@ -68,6 +84,8 @@ app.include_router(auth.router, prefix=API_PREFIX)
app.include_router(users.router, prefix=API_PREFIX)
app.include_router(tenants.router, prefix=API_PREFIX)
app.include_router(permissions.router, prefix=API_PREFIX)
app.include_router(mailboxes.router, prefix=API_PREFIX)
app.include_router(ws.router, prefix=API_PREFIX)
# ─── Health check ─────────────────────────────────────────────────────────────