docs(acm2-75): 澄清需求与架构验收口径
This commit is contained in:
+13
-13
@@ -4,7 +4,7 @@
|
||||
|
||||
- `US-01`~`US-14`(三级标题定义)、`OPS-1`~`OPS-4`(注册表定义)。
|
||||
|
||||
代码入口与参数取值不在本文件:前者见 [reference.md](reference.md)「模块与代码入口」,后者见其参数表。前提、不变量、契约与偏差见 [specification.md](specification.md);机制、航班域与静态参考数据见 [implementation.md](implementation.md)。工程纪律(工具链、测试设施、提交规范)以根 `AGENTS.md` 为唯一出处。
|
||||
本文件只写交付范围与验收口径,不重复代码入口、参数取值和实现机制。
|
||||
|
||||
## 1. 范围与非目标
|
||||
|
||||
@@ -57,8 +57,8 @@
|
||||
**验收标准**
|
||||
|
||||
1. 一次只处理一条消息,取编号最小的未完成消息;处理中的消息不让后面的越过。
|
||||
2. 报文不合法:进死信。报文合法但本系统不支持该类型:跳过留档,按已处理写回标记。原始报文始终保留。
|
||||
3. 处理或提交失败:事务回滚,消息保持未完成,下一轮自动重新处理。
|
||||
2. 报文不合法:进死信。报文合法但本系统不支持该类型:跳过留档,按已处理写回标记。原始报文留在信箱,保留期由库方决定。
|
||||
3. 处理或提交失败:失败的事务回滚,消息保持未完成,下一轮自动重新处理。
|
||||
4. 处理只动本系统数据库;发 Kafka、回填信箱在处理完成之后单独做。
|
||||
5. 错误必须记录到对应消息的处理记录上,不能被外层吞掉。
|
||||
|
||||
@@ -78,9 +78,9 @@
|
||||
|
||||
**验收标准**
|
||||
|
||||
1. 动态消息的子类型共 25 类,处理规则以 AODB 与本系统之间的消息接口规范(SIS)为准;规范里没有但现场会发的 7 类(靠桥、延误、计划机位等),按现有处理逻辑延续。
|
||||
1. SIS 的 FLOP 部分列有 25 个动态消息子类型;现场需处理的 7 类为靠桥(`ABTM`)、延误(`DELY`)、计划机位(`PSDT`)、柜台(`CKDT`)、转盘(`CLDT`)、滑槽(`CHDT`)、登机门(`GTDT`)。其中五类资源分配子类型已包含在上述 25 类中,但 SIS 注明 AODB 发来时 RMS 拒收;靠桥、延误在 SIS 的日计划字段中有定义,不属于上述 25 个 FLOP 子类型。现场报文按现有处理逻辑延续。
|
||||
2. 每个子类型有明确的处理规则:更新哪些字段;报文里字段为空表示清除还是撤销;航班不存在时怎么办。
|
||||
3. 柜台、转盘、滑槽、登机门、机位五类资源分配报文,现场 AODB 实际会发,照常接收处理(消息接口规范写的是相反方向,与 AODB 核对确认);航线路线最多保留 4 条;报文里有但本系统不存的字段,记录在案,不悄悄丢掉。
|
||||
3. 柜台、转盘、滑槽、登机门、机位五类资源分配报文,现场 AODB 实际会发,照常接收处理(消息接口规范写的是相反方向,与 AODB 核对确认);航线路线最多保留 4 条;未落到航班当前态的字段,按信箱编号、路径和出现序号唯一记入自有数据库长期记录,保存原值,不随处理记录到期清理。
|
||||
4. 数据写入 Redis 成功,这条消息才算处理完成;写失败不标记已处理,下轮重新处理。
|
||||
|
||||
### US-06 删除航班(FDEL)
|
||||
@@ -94,7 +94,7 @@
|
||||
|
||||
### US-07 导入日计划(DNLD / RESP)
|
||||
|
||||
**目标**:日计划是 AODB 当前时刻的完整航班列表:AODB 主动下发(DNLD)或本系统请求后应答(RESP),收到即整体替换本地数据——请求日计划就是主动与 AODB 全量同步一次。
|
||||
**目标**:日计划是 AODB 当前时刻的完整航班列表:AODB 主动下发(DNLD)或本系统请求后应答(RESP),收到后分批同步本地数据;整包成功时本地航班当前态与快照一致——请求日计划就是主动与 AODB 全量同步一次。
|
||||
|
||||
| 报文 | 说明 |
|
||||
|---|---|
|
||||
@@ -104,7 +104,7 @@
|
||||
**验收标准**
|
||||
|
||||
1. 报文整体校验(声明的航班数、航班标识等)通过才处理;校验失败整包拒绝,本地数据不变。
|
||||
2. 报文里的航班逐条写入或更新;快照里没有的航班删除,并发删除消息。
|
||||
2. 报文里的航班逐条写入或更新;快照里没有的航班,在本地标记已删除,并登记待发删除消息。
|
||||
3. 以 AODB 下发的数据为准:日计划里某航班没携带的字段,视为 AODB 已删除该值,本地同步清掉。
|
||||
4. 航班量大,分批写入数据库,每批一个事务;处理失败不标记已处理,下轮整包重新处理。
|
||||
5. 按快照结果刷新 Redis:报文里的航班写入,缺席的航班移除。
|
||||
@@ -121,11 +121,11 @@
|
||||
|
||||
### US-09 向 AODB 请求数据
|
||||
|
||||
**目标**:本系统可以主动向 AODB 要数据:14 类参考数据 + 1 类日计划(请求类型以消息接口规范定义为准)。
|
||||
**目标**:本系统可以主动向 AODB 要数据:14 类参考数据(`RQRD`)+ 1 类日计划(`RQFD`),子类型以消息接口规范为准。参考数据请求由人工发起,日计划请求由 `POST /schd/sync` 触发。
|
||||
|
||||
**验收标准**
|
||||
|
||||
1. 同一类请求同时只有一个在等待;发新请求时旧请求作废。请求超过时限未等到应答,标记超时。
|
||||
1. `RQRD` 与 `RQFD` 各自同时最多一条已落信、未结案的请求;同一子类型发新请求时旧请求作废,新请求登记为待发送,等同一报文类型的在途请求收到应答、失败或超时后再落信。请求超过时限未等到应答,标记超时。
|
||||
2. 应答到达时按报文类型对应到等待中的请求;AODB 发错或迟到的应答不更新数据,记录后跳过。
|
||||
3. 收到 EROR(AODB 错误回报):定位到本系统发出的请求,标记失败并告警。
|
||||
|
||||
@@ -176,11 +176,11 @@
|
||||
|
||||
1. 每天凌晨定时执行(每日 3:30):读取全部实时航班,已结束的航班写入 Elasticsearch 历史库。
|
||||
2. 满足任一条件即视为已结束:
|
||||
- 计划时间距当前超过 3 天;
|
||||
- 已取消超过 1 小时;
|
||||
- 备降:应降本场、实际降其他机场,且计划时间距当前超过阈值;
|
||||
- 计划时间早于当前超过 3 天;
|
||||
- 取消时间(CNCL)早于当前超过 1 小时;
|
||||
- 备降:应降本场、实际降其他机场,且计划时间早于当前超过 1 小时;
|
||||
- 离港航班:计划时间早于当日、有实际起飞时间、且实际起飞不晚于当前;
|
||||
- 到港航班:计划时间早于当日、有实际到达时间、且实际到达距当前超过 1 小时。
|
||||
- 到港航班:计划时间早于当日、有实际到达时间、且实际到达时间早于当前超过 1 小时。
|
||||
3. 只有历史写入成功的航班才从实时数据删除;写入失败下次重来,已写入的不重复写入。
|
||||
4. 单个航班写入失败不影响其他航班;正在被消息处理的航班跳过,下轮再处理。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user