本章进度 17 / 18
94%
Harness 与工作流·判断·13 分钟
正文已完成

部分成功比完全失败更难处理

识别已发生副作用、未知状态和补偿动作,避免重复或静默丢失。

L148
为什么现在学

把“失败恢复”从听懂变成会判断,避免遇到真实任务时仍靠感觉选择。

本课会用什么
  • 无需安装新工具
  • 准备一个可对照的真实问题或样本

三封邮件发出两封、五条记录更新三条,这类部分成功不能直接重跑整批,也不能只标“失败”。系统必须保存逐项状态。

这一课的结果

能为多步写操作设计部分失败后的确认与补偿路径。

核心概念

先把关键判断说清楚

01

逐项状态替代批次布尔值

每个资源记录 pending、succeeded、failed 或 unknown,避免一项失败覆盖全部事实。

02

未知先查询

超时项先用业务键确认是否已生效,再决定重试。

03

补偿动作符合业务

已发邮件无法撤回就发更正;退款用冲正而不是删账。

案例拆解

五条客户标签更新中断

前三条返回成功,第四条超时,第五条尚未执行。

  1. 01

    前三条保持 succeeded,不重写。

  2. 02

    按 request_id 查询第四条,确认已成功后标记。

  3. 03

    第五条使用原批次幂等键继续,最终汇总逐项回执。

案例结果

恢复过程没有重复修改已成功项,也没有把超时误判为失败。

提交前练习

现在轮到你

为一个批量写操作设计部分失败恢复表。

完成本课需要:完成以下内容用于本课收口。

内容会自动保存在当前设备
查看参考答案与评分标准

参考答案

批量建工单按 customer_id+issue_date 去重;成功项保留 ticket_id;超时项先查询;仅未创建项重试;错误工单通过 close_with_reason 补偿并保留历史。

评分标准

  • 逐项状态真实
  • 未知没有直接当失败
  • 补偿保留审计

本课收口 · 应用检查

完成一次应用,再检查理解

完成一次必填练习,再通过理解检查;阅读标记和总结不设硬门槛。

0 / 2
02完成本课必填练习0 / 4 项必填内容已填写03通过理解检查点此去回答,约 30 秒
04补一句总结(可选)可以留空,不影响完成本课。
批量操作中某项超时,首要动作是?
你现在更接近哪一种状态?
尚有必填项未完成,请补齐后再继续。

资料来源

继续核对与延伸阅读

本课内容最近更新于 。