第 22 / 23 篇

附录 C:术语与故障排查卡

术语 本书中的含义
提案 模型或规则产生的未获执行权的结构化业务建议
可执行意图 经准入校验、绑定工具合同并持久保存的计划
业务操作键 在租户范围内跨请求、尝试和进程保持稳定的业务身份
计划指纹 确定表示下可执行参数的哈希,用于检测意图变化
审批 特定主体针对特定意图与时间范围建立的执行许可
领取 在短事务内竞争取得当前任务执行资格
租约 有期限的本地占有资格,不负责终止旧进程
围栏 区分执行资格世代的单调编号,接收方必须实际校验才有作用
尝试预算 持久保存的领取机会限制,不替代事实核查
ready_at 最早允许参加领取的时间,不保证准时开始或完成
unknown 当前证据不足以裁决工具效果,需要核查或人工处理
幂等工具 依据明确操作键与参数合同,使重复调用收敛到同一业务效果的接收方
权威查询 能对原业务身份返回具有清楚可见性语义的业务结果查询
补偿 针对既有效果创建的另一项业务操作,不是删除历史
版本兼容 执行者理解持久计划语义的能力,不仅是能解析 JSON

C.1 任务一直没有被领取

依次查询状态、ready_at、审批期限、取消请求、计划版本和尝试预算。一次领取为空也可能是候选行被锁,不能立即认定队列没有任务。必要时检查数据库连接等待和真实锁关系。

C.2 worker 收到了 stale

检查当前 owner、fence 与租约,再决定由谁核查。不要用无条件 UPDATE 覆盖,也不要通过迟到心跳复活过期资格。已有工具回执可以保留为核查材料,但不能恢复旧拥有者的权限。

C.3 客户端报错,用户却看到业务变化

按原操作键查询工具账本,核对指纹、账户、数量与回执。保持 unknown 直到证据足以裁决,不因超时就换键调用。检查本地终态事务是否失败,状态与事件是否共同回滚。

C.4 取消以后仍然显示成功

查询取消到达时的阶段和工具提交事实。如果效果已经发生,成功与取消请求可以同时成立。后续如需补偿,创建独立业务操作、审批与审计,不把历史成功删掉。

C.5 测试退出码为零,是否可以发布

还需检查真实 PostgreSQL 集成是否运行、是否出现 skip、源码版本与证据是否对应、EPUB 与网页是否完整、公开下载是否与成功 CI 相同。单个退出码不能替所有交付条件作证。