题目
如何建模执行中、等待输入、等待审批、成功、失败和取消等状态?
答案
用明确的状态机表达任务生命周期,并规定哪些事件可以触发转换。典型状态包括排队、执行中、等待输入、等待审批、成功、失败,以及取消中和已取消。
等待输入或审批是可恢复状态,需保存等待原因、需要的字段和恢复入口,释放不必占用的执行资源。收到信息后重新校验,再回到可执行状态。

成功必须满足验收条件;失败应记录原因和已经发生的外部操作。取消通常先阻止新步骤,再尝试停止在途调用,确认后才标记已取消。
状态更新使用版本号或条件更新,避免完成回调与取消请求同时到达时互相覆盖。状态记录还应包含更新时间和操作者,方便恢复、超时处理及审计。
