docs: 纠正对齐后的文档反向漂移(UNSUPPORTED/CHDT/FDEL/Flyway)
ACM2-83/87/90 落地后 reference、implementation、MsgEvent 与迁移注释仍描述旧行为;拆开 UNSUPPORTED 两行,并写清 V1+V2 与删航班只走 msg。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+1
-1
@@ -8,7 +8,7 @@ MSGX_MAILBOX_URL=jdbc:mysql://localhost:3306/cdairport?useSSL=false&allowPublicK
|
||||
MSGX_MAILBOX_USER=msgx_dev
|
||||
MSGX_MAILBOX_PASSWORD=msgx_dev_pass
|
||||
|
||||
# 2. 自有 PostgreSQL(dev compose: postgres 服务,应用启动设 MSGX_FLYWAY_ENABLED=true 时由 Flyway 自动执行 V1.0.0 与 V1.1.0 迁移)
|
||||
# 2. 自有 PostgreSQL(dev compose: postgres 服务,应用启动设 MSGX_FLYWAY_ENABLED=true 时由 Flyway 执行 V1 + V2)
|
||||
MSGX_PG_URL=jdbc:postgresql://localhost:5432/msgx
|
||||
MSGX_PG_USER=msgx_dev
|
||||
MSGX_PG_PASSWORD=msgx_dev_pass
|
||||
|
||||
@@ -300,7 +300,7 @@ PG 是航班数据源(`INV-5`);Redis 从 PG 同步,处理完成前写入
|
||||
| 资源明细表 | 保存登机门、值机柜台、转盘、计划机位、滑槽、延误、靠撤桥、轮挡等变长集合;`SRVT`/`VIPF` 专用明细见 `G-SRVT-VIPF`。主键为 `(FLID, ORDINAL)`。 |
|
||||
| `FLIGHT_ROUTE_POINT` | ROUT 与 ERUT 两类路线点,使用 `ROUTE_KIND` 区分;主键应包含该列,避免两类路线的序号冲突。 |
|
||||
| `PROC_STATE` | 信箱消息的处理终态、业务身份幂等记录,以及回填事实(`RECEIVED_AT` / `BACKFILL_*`)。 |
|
||||
| `MSG_EVENT` | 事务 outbox,承载整态快照、变更通知和删除事件(tombstone)。 |
|
||||
| `MSG_EVENT` | 事务 outbox,承载整态快照与变更通知;删航班只走 `msg`(`C-9`)。 |
|
||||
| `SCHD_SNAP_LOG` | 日计划处理留痕,只追加、可重建,不参与状态决策。 |
|
||||
|
||||
### 11.2 航班身份与运营日
|
||||
@@ -342,7 +342,7 @@ PG 是航班数据源(`INV-5`);Redis 从 PG 同步,处理完成前写入
|
||||
- 相同资源号不代表同一条分配,禁止按资源号去重。
|
||||
- 每次持久化完整航班状态时,明细表按该 `FLID` 先删后插,以完整合并结果为准。
|
||||
- ROUT 与 ERUT 是两类独立集合,不能因相同序号覆盖彼此。
|
||||
- `CHDT` 的类字段固定为 `CCLS`/`CTYP`;当前 wire DTO 与持久化列误写成 `CHCLS`/`CHTYP`,见 `G-FLOP-UNMAPPED`。
|
||||
- `CHDT` 的类字段固定为 `CCLS`/`CTYP`(wire DTO 与 `flight_chute` 列 `ccls`/`ctyp` 已对齐;迁移见 `V2__flight_chute_class_type_rename.sql`)。
|
||||
- 主/共享:`MAID` 指向主航班 `FLID`;`MAFL` 从子航班派生,不入站。
|
||||
|
||||
### 11.4 `MAFL`
|
||||
@@ -395,7 +395,7 @@ PG 是航班数据源(`INV-5`);Redis 从 PG 同步,处理完成前写入
|
||||
|
||||
### 12.3 删除与重建
|
||||
|
||||
FDEL:`ACTIVE→DELETED`,写 tombstone。物理删除仅历史清理成功后(`US-14`、`D1`)。覆盖范围内快照缺席也标删(`INV-7`)。
|
||||
FDEL:`ACTIVE→DELETED`,只登记 `KAFKA:msg` 变更通知(`C-9`;不再写 `schd` tombstone)。物理删除仅历史清理成功后(`US-14`、`D1`)。覆盖范围内快照缺席也标删(`INV-7`)。
|
||||
|
||||
ADFT:Set-only(`US-04` AC2),未带字段不清。有 `SODT` 则算 `OPERATION_DAY`。
|
||||
|
||||
|
||||
+2
-1
@@ -137,7 +137,8 @@
|
||||
| `MALFORMED` | 找不到原文,或 XML、必要字段无效 | 立即记 `DEAD`,停止自动处理 | 否 |
|
||||
| `PROTOCOL` | 整份报文未通过业务校验,或运营日不一致 | 整份不写数据库,记 `DEAD` | 否 |
|
||||
| `CODEC_ERROR` | 解码程序尚不能识别报文结构 | 记 `FAILED`,等待后重试 | 是 |
|
||||
| `UNSUPPORTED` | 当前没有对应的处理程序 | 当前代码记 `FAILED` 并重试;`US-03` AC2 要求跳过合法未知类型 | 是 |
|
||||
| `UNSUPPORTED`(合法未知类型) | 报文种类可识别,但没有对应处理程序(`MsgKind.Unsupported`) | 记 `SKIPPED`,写回信箱为已处理(`US-03` AC2) | 否(终态,不进重放白名单) |
|
||||
| `UNSUPPORTED`(参考数据) | 参考数据类别已识别,但处理器尚未落地(`MsgKind.RefData`) | 记 `FAILED(UNSUPPORTED)` 并重试 | 是 |
|
||||
| `INFRA` | 数据库、网络或程序执行出错 | 记 `FAILED`,等待后重试 | 是 |
|
||||
| `EXHAUSTED` | 自动重试次数已用尽 | 记 `DEAD`;原错误类别被覆盖,原因留在 `LAST_ERROR` | 是 |
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package com.gzzn.omms.msgexchange.domain
|
||||
|
||||
/** 事件的两种形态:UPSERT 是新增或更新(可能是整态也可能是变化通知),TOMBSTONE 是删除。 */
|
||||
/**
|
||||
* 事件形态。生产路径只写 [UPSERT]:删除通知也走 `KAFKA:msg` 的 UPSERT 变更(`C-9`)。
|
||||
* [TOMBSTONE] 仍保留在枚举与投递分支里,当前无生产写入方(待 `Q5` 定稿清理或保留)。
|
||||
*/
|
||||
enum class EventType { UPSERT, TOMBSTONE }
|
||||
|
||||
/** 投递状态:PENDING 待发 → SENT 已发出;发送失败按退避重试,重试次数用尽转 DEAD,留在表里当死信队列。 */
|
||||
@@ -11,8 +14,8 @@ enum class EventStatus { PENDING, SENT, DEAD }
|
||||
*
|
||||
* 写业务数据时在同一个事务里往这里插一行,投递线程随后按行发出,这样业务提交和"该发的事件"
|
||||
* 不会脱节。KAFKA_SCHD 发完整状态,KAFKA_MSG 只发"这个航班变了"的通知;两个主题之间不保证
|
||||
* 先后顺序。TOMBSTONE 只在两种情况下登记:航班从在用变成删除,或者被生命周期清理前补发
|
||||
* 一次删除通知。见 docs/implementation.md「Kafka 与读取」。
|
||||
* 先后顺序。删航班只登记 `KAFKA:msg`(`C-9`),不再写 schd tombstone。见
|
||||
* docs/implementation.md「Kafka 与读取」。
|
||||
*
|
||||
* stateVersion 是发布时的航班版本号;同一 FLID 攒了多条待发事件时,只发版本号最新的那条。
|
||||
*/
|
||||
|
||||
@@ -47,8 +47,8 @@ micronaut:
|
||||
# 管理端点(U03/N32):/env、/beans 默认 sensitive;仅开发/影子环境放开——见 application-dev.yml
|
||||
|
||||
# 自有 PostgreSQL:全部内部状态(PIPELINE_LOCK/PROC_STATE/MSG_EVENT/REQ_TRACK/INBOX_CURSOR/
|
||||
# FLIGHT_SCHD 及明细表/SCHD_SNAP_LOG;迁移为单基线 db/migration/V1__flight_state_baseline.sql,
|
||||
# 原 V2–V10 的净结构已合并其中,回填事实与处理终态同表同行)。
|
||||
# FLIGHT_SCHD 及明细表/SCHD_SNAP_LOG;迁移链:V1__flight_state_baseline.sql(原多版净结构合并)
|
||||
# + V2__flight_chute_class_type_rename.sql(chute 类字段 CCLS/CTYP);回填事实与处理终态同表同行)。
|
||||
# 数据层实装前 enabled=false(stub 模式不建连)。
|
||||
datasources:
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user