自动化工作流里最棘手的失败,往往不是那些立刻报错的任务,而是"看起来成功了、其实错了"的对外动作:一封发错的客户邮件、一笔重复提交的订单、一篇事实有误的推送。这类环节无法靠重试覆盖,只能在设计阶段就把它标成红灯。
红灯的判断标准很直接:操作对外且不可逆。抓取数据、写入临时表属于只读或可逆动作,失败后有限重试即可;发送邮件、发布内容、提交订单、发起支付则一律需要人工确认。这里还有一层区分容易被忽略——内容生成可以随时中断,支付提交却不能在中间停下,只能整体回滚。
回滚也不是一个"撤销按钮",而是提前写好的清理脚本,需要覆盖三类状态。数据状态指任务中断后留下的中间结果,常见做法是给每个任务打批次标识,回滚时按标识批量清除或标记失效,涉及外部系统时还得有对应的取消或作废操作。内容状态相对简单,未发布的直接删除或归档,已发布的则要准备撤回与更正模板,写清下架步骤和目标渠道。
最容易被漏掉的是通知状态。错误告警一旦已经发给客户,回滚就不再是纯技术动作,还包括一次沟通,提前备好解释邮件模板,比事发时临时组织语言稳妥得多。
回滚演练的检验标准只有一条:恢复后系统状态与故障前一致,且没有残留的定时任务、锁文件或临时凭证。大量回滚失败并非主流程没清干净,而是锁没释放,导致后续任务接连卡住。因此建议为每个红灯环节单独维护一份回滚清单,写明步骤、涉及的系统、需要的凭证和预计耗时,放在任务日志旁边,出事时照着执行。
演练的价值在于形成节奏。上线前把各类故障跑一遍,红灯环节全部走人工确认;之后定期抽查日志完整性、确认告警可达,并安排完整的回滚演练;工作流有改动时只重跑对应环节。每次演练后更新风险清单和回滚清单,它们会随业务变化不断生长。
还有一点常被忽视:演练中发现的问题,应优先修"发现机制",而不是具体报错。一个能被及时发现、及时暂停的工作流,比一个从不出错却从不受监督的工作流安全得多。


暂无评论内容