fix(processing): 接通 Redis 投影并修正验证缺口
This commit is contained in:
@@ -198,7 +198,7 @@ LIMIT PARAM:msgx.pipeline.backfill-batch
|
||||
3. 分批写:跨运营日整包失败;**覆盖范围内**快照缺席航班标删、发删除事件、删 Redis,范围外的不受影响(`INV-7`)。每批同事务写变更 + 事件(`INV-3`)。
|
||||
4. 整包成功 → `SUCCEEDED` + 回填意图;留痕在事务外。
|
||||
|
||||
字段语义见「航班域」。`RESP` 须匹配开放请求,否则不更新(`G-RESP-GUARD`)。
|
||||
字段语义见「航班域」。`RESP` 须匹配开放请求,否则不更新。
|
||||
|
||||
### 7.2 上游请求与静态数据
|
||||
|
||||
@@ -283,7 +283,7 @@ PENDING → SENT → DONE
|
||||
| 航班历史存储 | 保留期 | — | — | 我们 | `G-FLIGHT-HIST-RETENTION` |
|
||||
| `SCHD_SNAP_LOG` | 保留期 | 无(本地可重建) | 无 | 我们 | — |
|
||||
| `MSG_EVENT` 已发送行 | `SENT` | 无 | 无 | 我们 | — |
|
||||
| `PROC_STATE` 终态行 | 见下 | 无(到期直接删除) | 回填了结 | 我们 | `G-PROC-CLEANUP` |
|
||||
| `PROC_STATE` 终态行 | 见下 | 无(到期直接删除) | 回填了结 | 我们 | — |
|
||||
| `REQ_TRACK` 关闭态行 | 保留期 | 无 | 无 | 我们 | `G-REQ-TRACK-RETENTION` |
|
||||
|
||||
**`PROC_STATE` 清理**(`US-11`):终态 + `BACKFILL_AT` 非空 + 超保留期(从 `UPDATED_AT` 起)。删除按 `STATE` 条件执行,0 行则跳过(与人工重放互斥)。批量删除不持 `PIPELINE_LOCK`。
|
||||
@@ -357,7 +357,7 @@ PG 是航班数据源(`INV-5`);Redis 从 PG 同步,处理完成前写入
|
||||
| `ORDINAL` | 从 1 起;单元素多属性(如 `FDIV/@DDES` 与 `FDIV/@DDIR`)各自 `ORDINAL=1`,因 `PATH` 不同而不冲突 |
|
||||
| `RAW_VALUE` | 原值 UTF-8 字符串;显式空标签记空串,不省略行 |
|
||||
|
||||
写入与航班变更同一 PG 事务:对该 `MSG_ID` 先删后插,重处理结果一致即幂等。清理保留期不含本表(`G-PROC-CLEANUP` 只清 `PROC_STATE`)。
|
||||
写入与航班变更同一 PG 事务:对该 `MSG_ID` 先删后插,重处理结果一致即幂等。清理保留期不含本表;`US-11` 只清 `PROC_STATE`。
|
||||
|
||||
- `ORDINAL` 是持久化顺序,从 1 开始;`SOURCE_SEQ` 是上游序号,允许为空或重复。
|
||||
- 相同资源号不代表同一条分配,禁止按资源号去重。
|
||||
|
||||
+5
-1
@@ -55,8 +55,12 @@
|
||||
| `msgx.identity.include-day-boundary` | `false` | 去重时是否把日期算进消息身份;受 `C-3` 约束,不能随意改变 | 默认关闭 |
|
||||
| `msgx.health.backlog-cache-ttl-ms` | `30000` ms | `/health` 与 `/metrics` 共用的未处理消息统计最多缓存多久;`0` 表示每次重算 | 暂定 |
|
||||
| `msgx.history.history-store-enabled` | `false` | 是否启用历史航班写入;关闭时不删除实时航班 | 默认关闭 |
|
||||
| `msgx.redis.enabled` | `false` | 是否把航班快照写进 Redis 查询投影;关闭时投影写入是空操作(`G-REDIS-PROJECTION`) | 默认关闭 |
|
||||
| `msgx.redis.enabled` | `false` | 是否把航班快照写进 Redis 查询投影;关闭时投影写入是空操作 | 默认关闭 |
|
||||
| `msgx.redis.flight-key` | `flightInfo` | 航班快照所在的 Redis 哈希键,字段名是 `FLID` | 沿用旧系统 |
|
||||
| `redis.uri` | `redis://127.0.0.1:6379` | Redis 连接地址;生产通过 `MSGX_REDIS_URI` 覆盖 | 当前实现 |
|
||||
| `msgx.outbound.response-timeout` | `30m` | 出站请求落信后等待应答的最长时间 | 暂定 |
|
||||
| `msgx.outbound.routing-rqfd` | `OSH5RQFD` | `RQFD` 写入 `COUTMSGS` 使用的路由标识 | 接口契约 |
|
||||
| `msgx.outbound.routing-rqrd` | `OMMSRQRD` | `RQRD` 写入 `COUTMSGS` 使用的路由标识 | 当前实现 |
|
||||
| `msgx.history.planned-age-days` | `3` 天 | `US-14` AC2 条件 1:计划时间早于当前超过该天数视为已结束 | `US-14` AC2 |
|
||||
| `msgx.history.cancelled-hours` | `1` 小时 | `US-14` AC2 条件 2:取消时间早于当前超过该窗口视为已结束 | `US-14` AC2 |
|
||||
| `msgx.history.diverted-hours` | `1` 小时 | `US-14` AC2 条件 3:备降且计划时间早于当前超过该窗口;备降依据 `FDIV`(`DDES`/`DDIR`)落地前不参与判定(`Q3`、ACM2-100) | `US-14` AC2 |
|
||||
|
||||
@@ -152,14 +152,10 @@
|
||||
| `G-FLOP-SEMANTICS` | 动态报文处理与 `US-05` 要求不一致 | `US-05` |
|
||||
| `G-FLOP-UNMAPPED` | [XSD](legacy/unisysaodbsis.xsd) FLOP 字段映射不全 | `US-05` |
|
||||
| `G-MAFL` | 主航班共享列表未做 | `US-06` AC2 |
|
||||
| `G-PROC-CLEANUP` | 处理记录到期清理未做 | `US-11` |
|
||||
| `G-REDIS-PROJECTION` | Redis 快照写入与删除未做:投影端口与三步提交时序已就位,真实 Redis 客户端未接通,日计划覆盖范围的缺席清扫也未做 | `US-05`、`US-06`、`US-07`、`US-12` |
|
||||
| `G-REF-DATA` | admin-api 生产侧只读接入与联调验收未闭合 | `US-13`;本网关落库与 `ReferenceDataProcessor` 已做(ACM2-93) |
|
||||
| `G-REQ-OPEN-UNIQUE` | 同类型未处理完时不允许再发,未做 | `US-09` |
|
||||
| `G-REQ-TRACK` | 出站请求跟踪未做 | `US-09` |
|
||||
| `G-REQ-OPEN-UNIQUE` | 新请求等待在途请求结案的登记模型未闭合;当前开放态唯一约束会拒绝新登记 | `US-09` |
|
||||
| `G-REQ-TRACK` | `RQFD` 跟踪已落地;14 类 `RQRD` 人工登记、子类型作废与等待投递未做 | `US-09` |
|
||||
| `G-REQ-TRACK-RETENTION` | `REQ_TRACK` 已结案保留期未定(`Q24`) | `US-09` |
|
||||
| `G-RESP-GUARD` | `SCHD-RESP` 过期判断未做 | `US-07` |
|
||||
| `G-SCHD-SNAPSHOT` | 日计划快照删除、清空、分批未做 | `INV-7`、`INV-9` |
|
||||
| `G-SRVT-VIPF` | `SRVT`、`VIPF` 缺席是否清除待 `Q2`;段出现时已落 `FLIGHT_SRVT`/`FLIGHT_VIPF` | `US-05` |
|
||||
|
||||
## 8. 验证映射
|
||||
@@ -181,13 +177,13 @@
|
||||
| INV-6 | implementation.md「数据模型」 | `FLID` 唯一 |
|
||||
| INV-7 | `US-07` AC2/AC3 | 覆盖范围内快照缺席航班标删并从 Redis 删,范围外不动;未带字段清空 |
|
||||
| INV-8 | `US-06` AC1 | 标删后从 Redis 删;失败下轮重做 |
|
||||
| INV-9 | `US-07` AC4/AC5 | 分批失败全部重来(`G-SCHD-SNAPSHOT` 做完前不可验);PG 整份写完后再刷 Redis |
|
||||
| INV-9 | `US-07` AC4/AC5 | 分批失败全部重来;PG 整份写完后再刷 Redis |
|
||||
| INV-11 | `US-12` AC1/AC2 | 返回全部非共享航班且与 Redis 一致;Redis 故障返回错误 |
|
||||
| CLM-1(重复不重复生效) | `US-03` AC2/AC3/AC5 | 跳过/无法处理留档且无业务改动;失败可查;PG 已提交不因写回或 Kafka 失败撤销;待 `Q3`、`G-FLOP-IDEMPOTENT`、`G-FLOP-SEMANTICS` |
|
||||
| CLM-2(升序) | `US-01` AC3、`US-03` AC1 | 按编号从小到大;最前面未完成时后面的不处理 |
|
||||
| CLM-7(启动拒绝) | `OPS-1` | 配置错误时启动失败 |
|
||||
| US-04(ADFT 更新) | `US-04` AC2 | ADFT 未带字段保持原值 |
|
||||
| US-14、D1 | `US-14` AC3/AC4 | 历史写入成功才删实时数据;删事件先于实时删除登记 |
|
||||
| G-PROC-CLEANUP(未完成不删) | `US-11` AC1/AC2 | 未处理完的记录不清理 |
|
||||
| US-11(未完成不删) | `US-11` AC1/AC2 | 未处理完的记录不清理 |
|
||||
| OPS-4(切换与回退) | `OPS-4` | 写回处理时间后再切回;在途消息见 `Q18` |
|
||||
| PRE-1(测试隔离) | `OPS-3` | 测试环境独立 DB、Redis、Kafka,不连生产信箱 |
|
||||
|
||||
Reference in New Issue
Block a user