服务器全量 sync 在 batch 180/260 撞远程阿里云 DW 瞬时错误 "Response from the Engine was empty" → 整跑 failed(数据已提交 180 批, 锁正常释放,cursor 因 status=failed 被过滤不误推进 — 都按设计работает)。 根因:一次全量 260 批 × 6 query = 1560 次远程查询,只要一次网络抖动就挂。 修复:queryJsonWithRetry —— 对瞬时错误(empty/timeout/reset/socket/5xx) 指数退避重试 3 次(0.5/1.5/4.5s);确定性错误(SQL/权限)不重试快速失败。 应用到 3 个热路径:listPatientPairs / loadTablesForCohort / loadAllTables。 (reversePull / 单患者 refresh 数据量小,暂不包)
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| cli | Loading commit data... | |
| common | Loading commit data... | |
| config | Loading commit data... | |
| modules | Loading commit data... | |
| openapi | Loading commit data... | |
| prisma | Loading commit data... | |
| queues | Loading commit data... | |
| redis | Loading commit data... | |
| app.module.ts | Loading commit data... | |
| health.controller.ts | Loading commit data... | |
| main.ts | Loading commit data... |