Files
surugaya/app/api/routes/health.py
T
2026-06-08 16:09:13 +08:00

32 lines
1.2 KiB
Python

"""健康检查接口:返回服务状态和浏览器池信息"""
from fastapi import APIRouter, Depends
from app.api.dependencies import get_container, require_bearer_token
from app.core.container import ServiceContainer
from app.models.scrape import ApiResponse, HealthData
router = APIRouter(tags=["health"])
@router.get("/health", response_model=ApiResponse[HealthData], dependencies=[Depends(require_bearer_token)])
async def health(container: ServiceContainer = Depends(get_container)) -> ApiResponse[HealthData]:
"""健康检查接口
返回浏览器池状态、Redis 连接状态和当前活跃会话等信息。
"""
session = await container.session_store.get_session("www.suruga-ya.jp:search")
data = HealthData(
status="ok" if container.browser_pool.ready else "degraded",
browser_enabled=container.settings.browser_enabled,
browser_ready=container.browser_pool.ready,
browser_startup_error=container.browser_pool.startup_error,
redis_enabled=container.session_store.redis_enabled,
active_session_id=session.session_id if session else None,
)
return ApiResponse[HealthData](
success=True,
msg="success",
data=data,
code=0,
)