SuperAPI AI 工具集

principle-make-operations-idempotent

编程与开发

查看项目

更新于 10-16 16:29

技能介绍

该技能是一条设计原则,用于指导命令、生命周期步骤与处理循环的设计,使其在崩溃、重启和重试频繁发生的环境中保持正确。

用途 当设计会改变状态的操作时,应确保无论运行多少次、从哪个起点开始,操作都收敛到正确的终态。每个改变状态的操作都应回答两个问题:“如果它运行两次会怎样?”“如果上一次运行中途崩溃会怎样?”

为什么需要 命令、生命周期操作和处理循环所处的环境里,崩溃、重启和重试是常态。如果残留的部分状态会改变下一次运行的结果,那么每次重启都会变成一次调试过程。

模式要点

  • 收敛式启动:扫描已有状态,清理陈旧产物,接管存活会话。
  • 基于内容的清理:按内容等价性比较,而不是按创建顺序。
  • 自愈锁:使用基于 PID 的陈旧锁检测。
  • 幂等调度:失败的工作能干净地重新生成,每轮循环后重新生成新输入。

自检问题

  • 如果连续运行两次会怎样?
  • 如果上一次运行在每一个可能的点崩溃会怎样?
  • 重新执行是否收敛到相同的终态?

如果任一答案是“取决于遗留了什么状态”,则该操作需要一个对账步骤。

适用场景 适用于设计命令、生命周期步骤或处理循环,尤其是运行环境存在崩溃、重启与重试的场景。

限制 资料未提供具体实现代码、安装命令、平台支持范围、收费方式或效果数据,暂未提供。