2.9 KiB
2.9 KiB
HANDOFF 2026-04-19 03:32
本轮做了什么
这轮没有扩功能,没有进新页面,也没有碰发布动作。
只做了两件事:
- 把检测执行停滞的判断继续收紧
- 对 worker 控制消息链补上最小代码修复
当前最新判断
当前不是接管问题,也不是日志回传问题。
当前真实状态是:
remote_access_ready = 3/3log_sync_state = full_capture- 大陆首批结果同步已经成功过
- 但检测任务没有持续前进
这个停滞目前有两层原因:
第一层:已确认的现场阻塞
mainland-controller-01代理池刷新后0 available- 代理源可以拉到原始代理
- 但抽样校验全部失败
这会直接影响 controller 侧吞吐。
第二层:刚补好的代码风险
之前存在一个运行态风险:
- 控制面发
start_detection - Redis
publish成功 - 但 worker 如果漏收 pubsub 消息
- pending 指令可能不会在运行态被再次消费
这会造成:
- 页面像是发起成功了
- 但 worker 不一定真的继续推进
现在这处代码缺口已经补上,但还没有完成线上部署验证。
本轮代码修复
1. worker_control_service
文件:
domain-api/app/services/worker_control_service.py
修复:
- 每条 worker 控制消息补
request_id - Redis
publish和 pending fallback 复用同一条消息体
2. detect_worker
文件:
domainCheck/detect_worker.py
修复:
- 运行态心跳里周期性补偿消费 pending 控制消息
- 真正收到控制消息后,按
request_id清理 pending
3. 新增测试
文件:
domain-api/tests/test_worker_control_service.py
验证目标:
- 确保
send_worker_command(...)会生成并持久化request_id
本地验证结果
已通过:
PYTHONPATH=/www/wwwroot/getDomain/domain-api /opt/domaincheck/domainCheck/.venv/bin/python -m unittest domain-api/tests/test_worker_control_service.py
python -m py_compile domainCheck/detect_worker.py domain-api/app/services/worker_control_service.py
下一轮唯一该做什么
下一轮不要发散,只做最小部署验证:
- 大陆节点拉最新代码
- 重启
domaincheck-worker - 复查:
/api/v1/detect/job/active/api/v1/runtime/sync-summary- controller / worker
scene-log - 必要时再采集
domaincheck-worker日志
- 只判断两件事:
- 修复上线后,检测任务是否恢复推进
- 如果仍不推进,是否只剩 controller 代理池
0 available这个现场阻塞
现在不要做什么
- 不做新页面
- 不做新模块
- 不做控制面增强
- 不做发布动作
- 不把问题再泛化成“日志没回来”或“接管没完成”
一句话结论
当前最准确的状态是:
- 接管和同步基本已经闭合
- 检测执行停滞仍然存在
- worker 控制消息补偿链已补代码
- 下一步只剩“拉代码重启 worker 后看任务是否恢复推进”