Define authoritative reconciliation acknowledgements
Local review candidate only. Explicitly selected inherited prerequisites and prior repair patches; unrelated WIP and independent MQ fixes are excluded. No push or deployment authorized.
This commit is contained in:
@@ -316,3 +316,27 @@ svc-hall:普通消费保留 `AnswerProjectionStore.applySnapshot(SnapshotEnvel
|
||||
`svc-hall/server/sql/fc_projection_and_apply_intent.sql`、
|
||||
`flow-center/service/src/main/resources/sql/add_flw_apply_request_identity.sql`)
|
||||
都是**非幂等**脚本,生产需人工执行;`ddl-auto=update` 的开发库会自动追加,两侧不能长期分叉。
|
||||
|
||||
|
||||
## 11. R3/R4 对账结果回执裁决(2026-10-23 收口)
|
||||
|
||||
本节是对账 `submitResult` 协议,不修改 MQ publisher confirm/return 或投递状态机(B-09 另案)。
|
||||
回执新增 `decision`、`reportAttempt`(本次回报轮次)、`resultState`(本轮已接受的结论);
|
||||
既有 `attempt` 继续表示中心当前派发轮次,`taskState` 表示中心任务状态,不能单凭它推断本次旧回报被采纳。
|
||||
旧回报永不推进中心新轮。终态权威必须由 `CENTER_TERMINAL` 显式声明,不以 stale=true 附带的诊断状态冒充。
|
||||
|
||||
| 条件 | decision | FC 写入 | SH 处置 |
|
||||
|---|---|---|---|
|
||||
| 当前 attempt 首次合法结果 | CURRENT_ACCEPTED | 持久结果;RUNNING 续租,终态按已有规则收敛 | 按 resultState 回填;RUNNING 保留租约,失败不能变成功 |
|
||||
| 当前 attempt 重复已终结结果 | CURRENT_DUPLICATE | 不覆盖首次结果、不重复计数 | 使用首次 resultState;不采信重报自己宣称的新结果 |
|
||||
| 旧 attempt,中心尚非终态 | STALE_RETRY | 仅归档;已有终结结果不覆盖;不续新轮租约、不推进任务 | 清本地租约,QUEUED 等重派/重试;不把诊断 taskState 当本轮成功 |
|
||||
| 中心已终态(包括旧 attempt 回报) | CENTER_TERMINAL | 不改中心终态与新轮结果 | 身份、轮次回声验证通过后镜像中心真实终态;FAILED/PARTIAL/CANCELLED 不伪装 COMPLETED |
|
||||
| 回报超出已派发 attempt | HTTP 业务拒绝 | 零结果/状态变更 | 保留可重试/人工诊断,不记成功 |
|
||||
| 发送异常、不可达、拒绝、空或不匹配回执 | 无有效确认 | 不推定已成功 | QUEUED + pendingReportState,仅重报;有界退避,耗尽 FAILED |
|
||||
| 缺新 decision 的旧中心回执且 stale=true | 保守兼容 | — | 保持 QUEUED,不信任附带终态;下一次完整回执再收敛 |
|
||||
|
||||
当前/重复成功回执必须匹配 taskId,reportAttempt 若提供必须等于本地发送 attempt。
|
||||
新协议 current 决策不得确认其他轮次;CENTER_TERMINAL 的中心 attempt 不得低于本地执行轮。
|
||||
乱序旧回执在本地持久化时仍受 work_version 乐观锁保护,不覆盖重派或新执行轮。
|
||||
有效租约 RUNNING 的重派不改变执行 attempt、租约、检查点或 work_version;过期(含相等)后才能重新排队。
|
||||
接收与领取均用同一任务行的悲观锁;领取时重新核对状态和退避时刻,陈旧扫描候选不能双领。
|
||||
|
||||
Reference in New Issue
Block a user