docs: capture mainland result sync prerequisite

This commit is contained in:
Your Name
2026-04-19 02:44:30 +08:00
parent 6c4e995f84
commit 3a55db94f8
3 changed files with 269 additions and 165 deletions

View File

@@ -1,6 +1,6 @@
# IMPLEMENTATION_STATUS
更新时间2026-04-19 02:40 CST
更新时间2026-04-19 02:43 CST
## 当前真实状态
@@ -12,74 +12,50 @@
本轮最重要的新事实:
- Detect 主统计口径已经从“双轨显示”推进到“统一后的有效账本”
- `detect/job/active``detect/queue-summary` 主字段已直接体现大陆 + 海外的统一聚合结果
- 原始中央账本仍完整保留,便于继续排障和审计
- item 级统一当前不能继续直接推进
- 根本原因已经查清:
- 大陆逐条结果目前没有进入中央
## 本轮代码收口
## 本轮结论收口
本轮后端变更
本轮没有进入新实现扩展,而是完成了 `I1` 的证据闭环
- `domain-api/app/services/detect_job_service.py`
### 1. `detect_result_projection` 当前只有聚合信息
本轮测试变更
当前 `projection.keys()`
- `domain-api/tests/test_detect_job_service.py`
- `job`
- `latest_event`
- `queue`
- `phase`
本轮修复方式
没有逐条结果
- 保留中央 `detect_job_items` 原始值
- 引入“有效统一账本”:
- `node_stats`
- `items_pending`
- `items_claimed`
- `items_running`
- `items_completed`
- `items_failed`
- `items_terminal`
- 同时新增 `raw_*` 字段保留中央原始账本
- 没有 `domain_id`
- 没有 `job_item_id`
- 没有终态域名列表
## 关键验证证据
### 2. 中央 `detect_run_events` 逐条结果只有海外节点
接口验证
当前中央实际可见
- `detect/job/active`
- 已统一为:
- `items_total = 1000`
- `items_pending = 931`
- `items_claimed = 34`
- `items_running = 14`
- `items_completed = 21`
- 原始账本仍可追溯:
- `raw_items_pending = 950`
- `raw_items_claimed = 25`
- `raw_items_running = 4`
- `node_stats` 已包含:
- `mainland-controller-01`
- `mainland-worker-01`
- `overseas-control-01`
- `unassigned`
- `detect/queue-summary`
- 已统一为:
- `pending = 931`
- `claimed = 34`
- `running = 14`
- `overseas-control-01`
- `domain_started`
- `domain_completed`
编译验证
当前中央不可见
- `python3 -m py_compile domain-api/app/services/detect_job_service.py domain-api/tests/test_detect_job_service.py`
- 通过
- `mainland-controller-01`
- `domain_*`
- `mainland-worker-01`
-`domain_*`
单测验证:
### 3. 因此当前还做不了大陆 item 级回写
- `/opt/domaincheck/domainCheck/.venv/bin/python -m unittest tests.test_detect_job_service`
- 通过
这不是简单 SQL 没补的问题,而是输入流还不存在:
运行验证:
- `domaincheck-api`
- 已重启成功
- 线上接口返回统一账本字段正常
- 中央不知道大陆到底是哪个域名完成了
- 中央只知道大陆总体“参与了、跑了多少、当前多少 running”
## 当前已闭合的问题
@@ -87,44 +63,48 @@
- 大陆 controller 无法 `pull_tasks`
- Detect 页面误判“大陆没跑”
- Detect 节点表格只显示海外与 `unassigned`
- Detect 主统计仍依赖 display 附加字段才能看懂
- Detect 主统计口径不一致
- Runtime / Queue / Detect 主摘要不统一
- item 级统一为什么做不了,这个问题现在已经查清
## 当前剩余问题
当前唯一剩余问题:
- 还没有做到 item 级逐条统一回写
- 大陆逐条结果缺少进入中央的最小同步通道
具体来说:
换句话说:
- 当前已做到:
- 主统计口径一致
- 节点参与口径一致
- Runtime / Detect 读取同一套有效聚合值
- 当前未做到:
- 大陆执行结果逐条回写 `detect_job_items`
- 当前不是“不会回写”
- 而是“没有可回写的逐条输入”
## 当前是否可以继续跑检测测试
当前结论:
- 可以继续跑检测任务测试
- 而且现在 Detect 主统计和节点参与都更接近真实执行态
- 可以继续跑检测测试
- 主统计和节点参与已经足够可信
- 只是不要把 `detect_job_items` 当作大陆执行结果的逐条真相来源
## 当前是否建议直接上线
当前结论:
- 已经比上一轮更接近可上线状态
- 如果目标是“后台可以稳定发起检测并看懂谁在跑”,已经基本可用
- 如果目标是“中央账本逐条结果完全统一”,还差最后一层 item 级回写
- 如果目标是:
- 后台稳定发起检测
- 看懂谁在跑
- 看懂整体任务推进
那已经基本可用
- 如果目标是:
- 中央账本逐条反映大陆每个域名的终态
那还差最后一个前置批次
## 当前优先级判断
最高优先级:
- 决定是否继续进入 `detect_result_projection -> detect_job_items` 的 item 级统一
- `J1-大陆逐条结果同步前置批`
当前不应继续推进:
@@ -132,12 +112,12 @@
- 新模块
- 新页面
- 发布动作
-检测账本统一无关的工作
-逐条结果同步无关的工作
## 完成下一轮后的预期
如果下一轮把 item 级结果回写规则明确并最小落地
如果下一轮把大陆逐条结果输入中央这件事补上
- Detect 不仅主统计一致
- 而且底层逐条账本也会接近最终一致
- item 级统一才会真正可落地
- 后续 `detect_job_items` 回写会变成纯工程实现问题
- 整体可上线程度预计提升到 `95%~96%`