Files
Mutual_Fund/api/routers/health.py
T

26 lines
806 B
Python
Raw Normal View History

2026-09-13 16:19:24 +08:00
"""基础设施健康检查路由。"""
from __future__ import annotations
from fastapi import APIRouter
from fastapi.responses import JSONResponse
from config import database
from utils.response import fail, success
router = APIRouter()
@router.get("/health/ready")
async def ready():
"""按需探测四库,并返回适合负载均衡器使用的 HTTP 就绪状态。"""
databases = await database.check_ready_detail()
is_ready = all(item.get("status") == "ok" for item in databases.values())
payload = {"ready": is_ready, "databases": databases}
if is_ready:
return JSONResponse(status_code=200, content=success(payload).model_dump())
return JSONResponse(
status_code=503,
content=fail(503, "基础设施尚未就绪", payload).model_dump(),
)