题目
进程崩溃后,如何恢复任务并避免重复执行外部操作?
答案
恢复时先获取任务执行权,再读取最近 Checkpoint 和操作日志,检查取消状态、权限和运行版本。不要直接从用户最初的话重新开始。
对每个外部操作区分未执行、执行中、已确认成功和结果未知。已成功的复用回执;结果未知的按稳定操作 ID 查询;确认未执行的才继续提交。

幂等键要与业务动作绑定,并在重试中复用。下游用唯一约束或原子状态转换保证重复请求不会重复扣款、发货或创建记录。
任务进度和外部系统通常不在同一事务里,因此不要承诺仅靠 Checkpoint 就实现严格的“只执行一次”。实际应组合至少一次调度、幂等执行、状态查询和必要的人工核对。
