只分成功和失败,等于把真正需要判断的过程全部藏起来
自动化任务并不是一个瞬时动作。它通常会经过待触发、已入队、执行中、等待外部回执、部分完成、重试中、人工处理中、终止或完成等多个阶段。如果系统只在最后写一个成功或失败,团队就只能看到结果,却看不到任务是怎么走到这个结果的。
这会直接影响日常运维和产品判断。一个失败任务到底是因为依赖超时、幂等冲突、输入数据不完整,还是上游已经人工改状态?如果所有异常都被压扁成“失败”,告警会失真,重试会乱打,最后只能靠人翻日志猜。
至少区分排队、执行中、待回执、可重试失败、不可重试失败和人工接管
状态命名要反映处理含义,而不是只反映技术结果
如果运维看到失败后还要再问开发“这到底算哪种失败”,说明状态设计还不够用