SuperAPI AI 工具集

principle-make-operations-idempotent

编程与开发

查看项目

更新于 10-28 16:16

技能介绍

用途

该技能适用于设计命令、生命周期步骤或处理循环的场景,这些操作运行在崩溃、重启和重试属于常态的环境中。其目标是让操作无论运行多少次、上一次运行在哪里停止,都能收敛到正确的状态。

主要能力

  • 要求每个会改变状态的操作回答两个问题:如果运行两次会怎样?如果上一次运行中途崩溃会怎样?
  • 提供幂等设计的核心思路:从当前存在的状态推导每一步,而不是从上一次运行打算做什么来推导。具体做法是读取当前状态、与目标比较、只应用差异。这样写出的步骤可以安全重复,因为重复执行时已无剩余工作。
  • 要求运行遗留物(锁、临时文件、半写入记录、已认领任务等)能被下一次运行识别为过期。过期判断应基于在上一次运行可能停止的任何位置都成立的证据,而不仅是常见情况。
  • 给出示例做法:写入临时路径再重命名到位,或按内容而非创建顺序比较产物。
  • 提供三项自检:连续运行两次会怎样?上一次运行在每个可能点崩溃会怎样?重新执行是否收敛到同一最终状态?

使用方式

在设计与审查命令、生命周期操作和处理循环时应用该原则。对每个会改变状态的操作,用上述三项自检进行验证。如果任一答案取决于遗留了什么状态,则该操作需要增加对账步骤。

适用场景

适用于运行环境存在崩溃、重启和重试的各类操作设计,包括命令、生命周期步骤和处理循环。

限制

资料未提供该技能的具体安装方式、依赖平台、代码示例或收费信息。