定义可取消检查点
在安全步骤之间以及开始重要操作前检查取消信号。对于长时间运行的步骤,应确认底层服务是否支持取消,以及如何报告完成与取消同时发生的竞态。
如果先前步骤已创建资源或触发外部操作,应决定取消后是保留、清理还是执行补偿操作。对于无法撤销的影响,不要承诺完全回滚。
明确最终状态
分别表示已取消、已完成、失败和部分完成。返回稳定的操作标识,让调用方查询状态,避免丢失响应后启动重复流程。
记录已完成步骤和待清理事项。测试副作用发生前、期间和之后的取消情况,并说明操作人员如何安全恢复或对账。
只有明确哪些步骤仍可停止、哪些副作用已经发生以及调用方会收到什么结果,取消行为才容易理解。取消信号不会自动撤销已完成工作,也不保证正在执行的操作已经停止。
在安全步骤之间以及开始重要操作前检查取消信号。对于长时间运行的步骤,应确认底层服务是否支持取消,以及如何报告完成与取消同时发生的竞态。
如果先前步骤已创建资源或触发外部操作,应决定取消后是保留、清理还是执行补偿操作。对于无法撤销的影响,不要承诺完全回滚。
分别表示已取消、已完成、失败和部分完成。返回稳定的操作标识,让调用方查询状态,避免丢失响应后启动重复流程。
记录已完成步骤和待清理事项。测试副作用发生前、期间和之后的取消情况,并说明操作人员如何安全恢复或对账。