Init
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
"""健康检查接口:返回服务状态和浏览器池信息"""
|
||||
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,
|
||||
)
|
||||
Reference in New Issue
Block a user