feat: stabilize multi-region runtime sync and worker orchestration
This commit is contained in:
162
docs/新机器接手交接_20260427.md
Normal file
162
docs/新机器接手交接_20260427.md
Normal file
@@ -0,0 +1,162 @@
|
||||
# 新机器接手交接
|
||||
|
||||
## 1. 目标
|
||||
|
||||
这次不是继续在当前机器上排障,而是:
|
||||
|
||||
- 把当前代码整理后提交到 Git
|
||||
- 在新服务器上重新部署验证
|
||||
- 让新的 Codex 接手继续推进
|
||||
|
||||
当前最重要的未完成主线只有一条:
|
||||
|
||||
- `domain-api/app/services/sync_push_service.py` 中 `_load_pushable_projections()` 的修复,需要在远端稳定部署后验证:
|
||||
- `detect_result_projection` push 是否恢复
|
||||
- `detect_result_ingest` 是否出现
|
||||
|
||||
## 2. 当前代码结论
|
||||
|
||||
已经确认并完成的代码侧修复:
|
||||
|
||||
- `domain-api/app/services/sync_push_service.py`
|
||||
- 修复 `_load_pushable_projections()` 选择逻辑
|
||||
- 旧问题:最新 `detect_result_projection` 明明存在且没有 push attempt,但候选集为空
|
||||
- 现修复:候选改为优先按最新 projection 选择
|
||||
- `domain-api/tests/test_sync_push_service.py`
|
||||
- 已补回归测试
|
||||
|
||||
本地验证已完成:
|
||||
|
||||
- `py_compile` 通过
|
||||
- `python -m unittest tests.test_sync_push_service` 通过
|
||||
|
||||
## 3. 当前卡点
|
||||
|
||||
不是代码不清楚,而是当前远端 SSH 不稳定:
|
||||
|
||||
- `121.204.244.188:22` TCP 可连接
|
||||
- 但 SSH banner 经常超时
|
||||
- Paramiko 常见报错:
|
||||
- `SSHException('No existing session')`
|
||||
- `Error reading SSH protocol banner`
|
||||
|
||||
因此当前没有拿到“远端已发布并生效”的硬结果。
|
||||
|
||||
## 4. 新机器接手后的首要动作
|
||||
|
||||
新机器接手后,先不要扩散排查面,只做这一个最小动作:
|
||||
|
||||
1. 发布 `domain-api/app/services/sync_push_service.py`
|
||||
2. 重启 `domaincheck-sync-agent.service`
|
||||
3. 只验证两项:
|
||||
- `detect_result_projection` push 是否恢复
|
||||
- `detect_result_ingest` 是否出现
|
||||
|
||||
## 5. 关键背景
|
||||
|
||||
项目根目录:
|
||||
|
||||
- `/www/wwwroot/getDomain`
|
||||
|
||||
主要子目录:
|
||||
|
||||
- `domain-api/`
|
||||
- `domain-web/`
|
||||
- `domainCheck/`
|
||||
- `docs/`
|
||||
|
||||
当前远端主机:
|
||||
|
||||
- `mainland-controller-01`
|
||||
- `121.204.244.188`
|
||||
|
||||
已确认的远端运行时 region 配置:
|
||||
|
||||
- `NODE_REGION=mainland`
|
||||
- `SYNC_SOURCE_REGION=mainland`
|
||||
- `SYNC_TARGET_REGION=overseas`
|
||||
|
||||
已确认的数据事实:
|
||||
|
||||
- mainland 本地已经生成了 `detect_result_projection`
|
||||
- surrogate job 例如:
|
||||
- `job_id=909`
|
||||
- `job_code=sync-overseas-28618`
|
||||
- worker 事件已写入 mainland 本地库
|
||||
- 真正未打通的是 `detect_result_projection` 的 push 选择阶段
|
||||
|
||||
## 6. 建议提交范围
|
||||
|
||||
建议优先提交真正的代码改动,不要把运行产物一起带上。
|
||||
|
||||
建议提交:
|
||||
|
||||
- `domain-api/`
|
||||
- `domain-web/`
|
||||
- `domainCheck/`
|
||||
- `tools/`
|
||||
- 需要保留的文档 `.md`
|
||||
|
||||
建议重点确认本次必须包含:
|
||||
|
||||
- `domain-api/app/services/sync_push_service.py`
|
||||
- `domain-api/tests/test_sync_push_service.py`
|
||||
|
||||
## 7. 明确不要提交的内容
|
||||
|
||||
以下属于运行产物、临时文件或本地探针,不建议提交:
|
||||
|
||||
- `docs/ops_center_runtime/night_runs/step_mix_*/`
|
||||
- `docs/ops_center_runtime/chinaz_gray_runs/`
|
||||
- `docs/_tmp_regression/`
|
||||
- `.codex-release-probe.txt`
|
||||
- `*.bak_*`
|
||||
- `*.log`
|
||||
- `*.pid`
|
||||
|
||||
当前工作区里特别要排除的项目:
|
||||
|
||||
- `domainCheck/app/utils/database.py.bak_20260426_220818_active_job_cache_tune`
|
||||
- `domainCheck/detect_worker.py.bak_20260426_220818_active_job_cache_tune`
|
||||
- `docs/ops_center_runtime/night_runs/step_mix_20260426_051718_smoke_p200/`
|
||||
- `docs/ops_center_runtime/night_runs/step_mix_20260426_051754_smoke_p200/`
|
||||
- `docs/ops_center_runtime/night_runs/step_mix_20260426_052641_debug_stepmix/`
|
||||
- `docs/ops_center_runtime/night_runs/step_mix_20260426_053252_mainland_step_mix_p200_t800/`
|
||||
- `docs/ops_center_runtime/chinaz_gray_runs/`
|
||||
- `.codex-release-probe.txt`
|
||||
|
||||
## 8. 已跟踪但不建议把这次删除提交进去的文件
|
||||
|
||||
这些文件目前显示为已删除,但更像本地运行态/配置文件,不建议在这次“迁移到新服务器”的提交里带上删除:
|
||||
|
||||
- `domainCheck/app/thread_count.json`
|
||||
- `domainCheck/node_thread_counts.json`
|
||||
- `domainCheck/runtime/runtime_settings.json`
|
||||
- `domainCheck/runtime/sensitive_words.json`
|
||||
- `domainCheck/runtime_settings.json`
|
||||
- `domainCheck/thread_count.json`
|
||||
|
||||
处理建议:
|
||||
|
||||
- 如果这些删除不是你明确想做的配置收口,请在提交前恢复
|
||||
- 不要把“本地运行时删掉了某个 JSON”误当作产品代码改动提交
|
||||
|
||||
## 9. 提交前建议
|
||||
|
||||
提交前建议至少做这几步:
|
||||
|
||||
1. `git status --short`
|
||||
2. 把运行产物和备份文件排除掉
|
||||
3. 只保留代码、测试、必要文档
|
||||
4. 单独复查:
|
||||
- `sync_push_service.py`
|
||||
- `test_sync_push_service.py`
|
||||
- `.gitignore`
|
||||
- 本交接文档
|
||||
|
||||
## 10. 给新机器上的 Codex 的一句话
|
||||
|
||||
接手后不要重新发散排查 worker、projection 生成、事件落库链;这些已经基本收敛。优先完成 `sync_push_service.py` 的远端生效验证,只盯:
|
||||
|
||||
- `detect_result_projection` push
|
||||
- `detect_result_ingest`
|
||||
Reference in New Issue
Block a user