自动化最怕的不是出错,是出错没人知道
很多人担心自动化「做错事」,其实更常见、更贵的问题是:它出错了,但没人知道。过了两周才发现某张报表一直是空的、某次同步一直没成功,中间那些「看起来正常的数字」全是被旧数据撑着的。
出错本身是可以修的;出错没人知道,会让你连「从哪天开始错的」都答不上来。下面三种失败,都属于「看起来一切正常」。
一、失败会自己消失
一次性任务最容易这样:到点跑一次,跑挂了,没有第二次机会,也没有任何提示,第二天这个任务连记录都不在了。人去看的时候,只看到「列表里没有它」,很难判断它是「跑完了被清掉」还是「压根没跑」。
对策不是「多试几次」这种笼统说法,而是两条具体的:失败必须留一条记录,并且这条记录要在人能看到的地方。没有记录的成功和失败,在事后看来长得一模一样。
二、「我在跑」被当成了「我跑成了」
不少自动化只报过程:正在处理、进度 30%、请稍候。这些状态很安慰人,但它们不构成结果。真正要报的只有三种:跑成了、跑失败了(失败原因是什么)、超时了(卡在哪一步)。
- 过程状态给人看,让人不焦虑;
- 结果状态给系统看,用来做判断和重试;
- 两者不能互相替代——只有过程没有结果,等于永远不知道这件事有没有结束。
判断标准很直白:如果这条任务在半夜失败了,第二天早上有没有一条明确写着「失败」的消息?没有,就说明它现在只会报过程。
三、让失败必须开口的三条做法
- 超时也算失败。很多任务不是报错,而是卡住不动。设一个上限时间,到点没完成就判失败并上报,不要等它「也许还会成功」。
- 每天对一次账。计划今天该跑几次、实际跑成几次、失败几次。三个数字对上,才算这天是干净的;对不上,差额去哪了就是线索。
- 失败也要发消息,不许沉默。失败静默是自动化里最贵的 bug,因为它的代价不是一次错误,而是「错误持续时间」乘以「没人发现」。
这三条都不需要多先进的工具,需要的是把「沉默」当成一种故障来处理。
四、人要看的不是日志,是差异
日志是给排查用的,不是给日常看的。日常真正该看的是「差异」:该有的没有、该齐的不齐、该涨的没涨。自动化把这些差异算出来推给人,人只需要判断「这条差异要不要管」,而不是从头翻几百行流水。
这也是自动化最值钱的地方——它不该替你做决定,而该把「哪里不对劲」提前算好放到你眼前。哪些环节适合这样交给它,功能页 里有按场景的对照;成本怎么算,定价页 是按实际用量来的;想先在自己生意里跑一条最小闭环,下载 之后从「每天一次汇总」开始最稳。
五、留三个问题
- 我的自动化里,有多少条是「失败了也不会有人知道」的?
- 它报的是过程还是结果?半夜失败,早上有消息吗?
- 我有没有每天对一次「该跑几次 vs 实际几次」的账?
能自动干活是本事,能自动报错才是可靠。把「失败必须开口」写进流程,比再加十个功能更能让人敢把活交出去。
土拨鼠 Marmot