nightly-legacy-sync-check-2026-10-31.md 4.2 KB

夜间同步核查与处置记录(业务日 2026-10-31)

核查窗口:北京时间 2026-10-31 23:43 — 2026-11-01 01:33。全程只使用同一个官方入口(LaunchAgent cn.xiaoshu.legacy-direct-sync-nightly),未启动第二套同步、未走同步桥、未抢占租约、未删除有效目录锁。

结论

业务日 2026-10-31 的夜间同步已完成:服务端状态 completed-with-preserved-conflicts,业务记录新增 1,072 条、更新 182 条、保留冲突 4,204 条、失败 0 条,9 个业务数据集与财务分组全部核验通过。完成时间 2026-11-01 01:29(北京时间)。

真实 23:00 触发已发生:runId 579148c2-4320-46e7-9304-8bf38498a481,服务端 startedAt = 2026-10-31T15:00:06.098Z、finishedAt = 2026-10-31T17:29:15.274Z,来源 old-api/WXAPP、bridgeUsed=false、settlementReady=false。

过程:先阻塞,后处置,再跑通

  1. 23:00–00:40 阻塞:本机每 5 分钟重试,全部以 blocked / legacy_account_identity_conflict 结束;服务端一直 running 且 finishedAt=null,9 个数据集零进度。10 分钟间隔轮询 4 次状态无变化。
  2. 00:39 定位到具体冲突(只读查询,未改业务数据):

| | 旧系统(WXAPP) | 新系统占用者 | | --- | --- | --- | | 编号 | 1871 | 1871(伪编号) | | 姓名 | 李牧昀高中 | 王宪武 | | 手机 | 15270983183 | 18046606209 | | 来源 | 学员(groupId 1) | reading-unified:user:IGBA4RhDse,2026-09-04 阅读统一导入 | | 状态 | state 2 | 未删除、未禁用 |

旧系统用户表中不存在 18046606209,说明该阅读账号的编号是导入时生成的伪编号,压在旧系统真实学员 1871 上。

  1. 00:40 处置(非破坏性,参照 2026-10-15 处理编号 1860 的先例):撤销该阅读账号的伪编号(legacyUserId 置空、legacyUserData.UserID 移除),账号本身与其业务数据保留不删除;冲突记录 direct-api:user-identity:1871 标记 resolved=true,并写入 SysLog 凭据 identity-1871-reading-pseudo-id-released-2026-10-31。
  2. 00:50 起自动续跑(同一入口、同一 runId):9 个数据集依次分页写入,随后财务分组回读核对,01:29 收尾。

成功回执验收清单

验收项 结果
9 个数据集服务端业务 ID / 主表与附表 / 校验和核验 全部 reconciled=true、failed=0
每业务编号恰有一份主表 通过(allCapturedSourceIdsReconciled=true)
账号只新增并匹配旧用户编号 源 749、新增 1、匹配 745、缺失 0、排除 4、身份冲突 0
栏目只补缺 源 461、新增 0、匹配 461、缺失 0
财务分组(会员流水 stype=1/2/3/4)回读核对 42,196 行 / 550 会员 / 2,200 条流水,reconciled=true
failed=0、锁已释放 通过,目录锁已不在,告警状态 failed:false
来源 old-api/WXAPP、bridgeUsed=false 通过
数据集 旧接口记录 新增 更新 保留冲突 失败
专项训练 19 0 0 19 0
词库 106,520 0 0 159 0
课程绑定 1,542 3 4 117 0
每日学习 19,921 27 0 0 0
练习记录 449,377 675 72 434 0
抗遗忘 203,185 300 87 2,771 0
预约 31,793 37 19 535 0
上课 19,694 30 0 0 0
测评 206 0 0 0 0

账号新增的 1 条即旧系统编号 1871(李牧昀高中)。保留的 4,204 条冲突表示有意保留新系统修改,不等于源与目标一致;冲突只记录、不自动解决。新系统修改、账户余额、课时、人工确认与复习计薪凭据均保留。

备注

  • settlementReady=false:本任务仍不能替代工资结算所需的新鲜度与专项核验。
  • 本机 LaunchAgent 配置与要求一致(program 指向 run-nightly-direct-sync.mjs --scheduled、TZ=Asia/Shanghai、Hour=23/Minute=0)。
  • 私有运行报告:~/.local/state/xiaoshu/legacy-sync/2026-10-31-direct-579148c2-4320-46e7-9304-8bf38498a481.json;心跳文件同目录 heartbeat-23-status-2026-10-31.json(0600)。本报告不含任何凭据内容。