把任务拆成可记录的状态
定义待执行、运行中、已完成、失败和结果未知等状态,并记录每一步的稳定标识与输入摘要。状态转换应由执行器在可信存储中管理,不能依赖对话文字中的“上一步完成了”。长任务需要知道哪些结果已持久保存,哪些只存在于临时内存。
区分纯计算和外部副作用。读取测试文件失败通常可以重新安排,而提交外部动作后连接断开,执行结果可能未知。为每种动作规定如何查询结果、何时需要人工处理,以及哪些情况禁止自动重试。
在提交边界保存恢复证据
调用外部工具之前保存待执行记录;得到可靠结果后保存返回标识与状态,再推进后续步骤。若工具支持经过验证的幂等机制,按其规则使用稳定标识;如果不支持,就不能用自己生成一个标识来宣称已经防止重复执行。
恢复时先查当前状态与外部证据。不要只因为客户端没有收到成功消息就重复提交,也不要把“运行中”直接改成成功。设置并发租约或等价协调,防止旧工作者和恢复工作者同时运行同一步;授权在恢复期间也需要重新核对。
用断点演练检查真实恢复路径
使用本地无副作用工具,在调用前、提交后和保存结果前分别注入中断。验证恢复后不会跳过未完成步骤,也不会重放已确认完成动作。对结果未知的项目,应进入查询或人工核对队列,而不是无上限重试。
把演练日期、版本与已覆盖断点写入记录。恢复后核对费用与最终产物,向用户说明已完成和仍待确认的部分。可靠恢复不是无限续跑;总耗时、调用次数与预算仍需上限,超过边界应安全停下并保留进度。
参考资料
由 NexoToken 维护的自营资料站。平台介绍包含运营方利益关系,不构成独立第三方认证。