服务器迁移窗口里新旧实例并存,新实例要能起来接流量、验证配置,但绝不能同时对 DW 做
增量摄入 + persona/plan 重算:
- 各连各库:两边各拉各的,待迁移的数据快照持续偏移,dump 出来就是旧的
- 同连一库:互抢 sync_logs 的 partial UNIQUE(host_id) WHERE status='running' 锁,
还会把对方**正在跑**的锁当"僵尸"回收(判据只看 startedAt 早于本进程启动)
【为什么必须是代码开关,env 关不掉】
- jvs-dw 的 manifest 写死 auto_sync: true,scheduler 启动即自动发现并注册
- cron 也写在 manifest(incremental_cron),优先级高于全局 PAC_INCREMENTAL_CRON
- PAC_INCREMENTAL_HOSTS= 留空只会 fallback 到自动发现
- 改 manifest 能关,但 deploy-prod.sh 会 git pull 覆盖掉
覆盖范围**只关写、不关读**:
✅ sync-incremental(摄入+persona+plan)—— 闸判定放在 reapStaleRunningLocks **之前**,
禁用态完全不碰 sync_logs
✅ stale-scan(enqueue persona 重算)
❌ dw-lag-monitor / daily-health-report —— 只发告警和报表,备用实例照常跑反而多一双眼睛
这条边界用测试钉住,防后来人"顺手统一"掉 → 迁移期静默失去监控。
只认严格的 '1','true'/'yes' 都不算 —— 半开状态比全开更难查。
⚠ ️ 迁移完成、旧实例下线后务必移除该 env 并重启,否则新生产静默不摄入(只表现为数据越来越旧)。
测试 824 项(+6)。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| processors | Loading commit data... | |
| bull-board.module.ts | Loading commit data... | |
| daily-health-report.controller.ts | Loading commit data... | |
| daily-health-report.service.ts | Loading commit data... | |
| dw-lag-monitor.service.ts | Loading commit data... | |
| job-payloads.ts | Loading commit data... | |
| queue-names.ts | Loading commit data... | |
| queue-producer.service.ts | Loading commit data... | |
| queues.module.ts | Loading commit data... | |
| scheduler-switch.ts | Loading commit data... | |
| stale-scan.service.ts | Loading commit data... | |
| sync-incremental.scheduler.ts | Loading commit data... |