4.1 KiB
4.1 KiB
Scheduler 执行清单 V1(前后端一体交付)
目标:交付“可见、可触发、可追踪”的调度中心,避免仅后端不可见改动。
原则:每步必须包含 Backend + Frontend + 可见验收。
0. 执行规则(强制)
- 每步包含
Backend任务+Frontend任务+可见验收。 - 每步完成即改
[x]并补验收证据。 - 无页面可见结果,不进入下一步。
- 失败需记录回滚点与阻塞原因。
1. 范围与阶段
- S0 稳定性前置(401 熔断、防轮询风暴)
- S1 调度基础能力(Job Registry + JobRun 持久化 + 手动触发)
- S2 调度中心页面(任务列表、触发、运行记录)
- S3 认知链路接入(对齐评分任务接入调度)
- S4 联调验收(失败重试、权限、可视化证据)
2. 分步清单
[x] S1 调度基础能力
Backend任务
- 新增
scheduler_center服务:注册任务、执行任务、记录job_runs。 - 新增
/schedulerAPI:GET /scheduler/jobsGET /scheduler/runsPOST /scheduler/jobs/{job_name}/trigger
Frontend任务
- 新增
schedulerAPI client,支持查询与触发。
可见验收
- 调用
GET /scheduler/jobs可见可触发任务列表。 - 触发任务后
GET /scheduler/runs出现新纪录(running/success/failed)。
验收证据
- API 已新增:
GET /scheduler/jobs、GET /scheduler/runs、POST /scheduler/jobs/{job_name}/trigger - 后端文件:
backend/app/services/scheduler_center.py、backend/app/api/scheduler.py - 路由接入:
backend/app/api/__init__.py、backend/app/main.py
[x] S2 调度中心页面
Backend任务
- 补充运行记录字段(耗时、错误信息、payload 摘要)并排序输出。
Frontend任务
- 新增
SchedulerCenterPage:- 任务列表
- 手动触发按钮
- 最近运行记录
- 错误可读展示
- 路由接入,并在项目看板增加入口按钮。
可见验收
- 页面可手动触发任务并实时看到运行结果。
验收证据
- 页面已新增:
frontend/src/pages/SchedulerCenterPage.tsx - 前端 API 已新增:
frontend/src/api/scheduler.ts - 路由已接入:
/scheduler-center(frontend/src/router/index.tsx) - 项目看板入口已接入:
frontend/src/pages/ProjectBoardPage.tsx - 构建通过:
cd frontend && npm run build
[x] S3 认知链路接入(O4-4 首版)
Backend任务
- 将“项目认知评分重算”封装为调度任务
alignment_rescore_project。 ai_steward对应入口优先通过调度执行并写job_runs。
Frontend任务
- 调度中心支持传入
project_id触发重算任务。
可见验收
- 触发重算后,
job_runs成功记录可见;评分接口数据可更新。
验收证据
- 调度任务真接线:
backend/app/services/scheduler_center.py->alignment_rescore_project - 评分内核抽离:
backend/app/services/alignment_orchestrator.py ai_steward入口改为优先通过调度执行并落job_runs:backend/app/api/ai_steward.py
[x] S4 联调与收尾
Backend任务
- 权限控制:仅 BOSS/ADMIN 可触发关键任务。
- 失败重试策略:同名任务支持手动重跑。
Frontend任务
- 失败任务标红 + 一键重试。
可见验收
- 失败任务可重试并形成新的运行记录链。
验收证据
- 关键任务触发权限:
backend/app/api/scheduler.py(BOSS/ADMIN)与backend/app/api/ai_steward.py(BOSS/ADMIN) - 后端重试接口:
POST /scheduler/runs/{run_id}/retry(BOSS/ADMIN),scheduler_center.retry_run() - 前端失败一键重试:
schedulerApi.retryRun(runId)+ 失败任务红底/红边样式,frontend/src/pages/SchedulerCenterPage.tsx
3. DoD(完成定义)
- 调度中心页面可访问、可触发、可追踪。
- 关键调度任务有持久化记录(成功/失败可区分)。
- O4-4 首版实现“可持续更新认知状态”的调度入口。
- 前端构建通过:
cd frontend && npm run build