"""Scheduler API 路由。""" from fastapi import APIRouter, Depends from sqlalchemy.ext.asyncio import AsyncSession from ..database import get_db from ..dependencies import require_manager_user from ..models import User from ..services import workload_service router = APIRouter(prefix="/scheduler", tags=["scheduler"]) @router.get("/health") async def scheduler_health() -> dict: """调度模块健康检查。""" return {"code": 0, "message": "success", "data": {"status": "ok"}} @router.post("/workloads/recalc") async def trigger_workload_recalc( current_user: User = Depends(require_manager_user), db: AsyncSession = Depends(get_db), ) -> dict: """手动触发一次负载重算。""" _ = current_user tenant_ids = await workload_service.list_tenant_ids(db) if not tenant_ids: tenant_ids = [1] total = 0 for tenant_id in tenant_ids: total += await workload_service.recalculate_all_users_workload_ratio(db, tenant_id=tenant_id) return { "code": 0, "message": "success", "data": {"tenant_count": len(tenant_ids), "user_count": total}, }