Files
getDomain/docs/新机器接手交接_20260427.md

163 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 新机器接手交接
## 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`