Files
FreeCADWasmDev/docs/current/ROUND_REPORTING.md

2.7 KiB
Raw Blame History

每轮执行回执

用户于 2026-09-18 要求每轮结束显示实际结果和下一轮任务。

自动刷新页面:http://127.0.0.1:5180/execution.html(每 5 秒读取现有记录)。

终端简报:python3 tools/scheduler_round_report.py。 完整状态:python3 tools/show_freecad_web_scheduler.py,顶部先显示回执。 逐轮实时输出:tail -F docs/current/freecad-web-scheduler.out。 服务启停日志:journalctl --user -u freecad-web-acceptance.service -f。

记录位置:

  • docs/current/round-report.json:最近结果、已确认接续任务及最近 20 轮。
  • docs/current/round-reports/cycle-NNNNNN.json:保留各轮独立结果。
  • web/public/execution-status.json:供进度页读取的简明数据。

业务回合从既有 scheduler-progress 的结束记录生成,巡检回合从既有巡检 结果生成。新增整项通过只引用 firstBusinessPassIds 和其验收证据;源码 修改、历史证据刷新、未完成及上游等待分开显示。原始回合说明与流水线 阻塞分开保存。下一轮只有调度状态与批次 ID 匹配、并进入实际执行阶段后 才显示为已确认;否则显示待调度,不预测或修改队列。

回执接在现有心跳发布处,普通更新最多每 5 秒一次,轮次/状态边界即时 刷新;非阻塞文件锁避免多个查看命令冲突。报告错误不阻止原心跳发布。 无新增常驻进程,不加载 WASM,不运行验收,不改变通过台账或调度优先级。

首次启用通过向 scheduler(不是 watchdog/service)发送其已处理的 TERM, 让当前业务回合及后置流水线正常完成,再由现有看门狗重载。新心跳中的 roundReportVersion: 1 是自动发布已载入的实际标记;进度页在此前明确 显示启用中,不把静态快照冒充实时更新。

进度页兼容 scheduler 已加载的 v2 回执和重载后的 v3 回执。升级发生在 业务回合中时不终止当前回合;页面继续显示已有回执,待看门狗自然重启 scheduler 后使用新版格式。这避免执行状态页面因格式升级而空白。

验证:7 项回执逻辑测试;连同已有计时和巡检测试共 26 项通过。真实浏览器 确认页面能自动获得更新、返回真实状态、无页面错误,390px 布局无横向 溢出。截图位于 round-report-check/。一次已缓存结果更新约 0.015 秒。

自动发布已在当前回合自然完成后的重载生效,观察到新 scheduler PID 1970889、roundReportVersion: 1。页面实际取得第 9443 轮的两项首次通过 记录及尚未验证的后续预览修复,并自动显示第 9444 轮 Mesh 接续任务。 这是自动回执的运行证据,不代表那两项后续源码变更也已经通过验证。