网易首页 > 网易号 > 正文 申请入驻

定时任务连跑40次全绿,结果一次活都没干

0
分享至

凌晨两点半,一个定时任务准时醒来,从接口拉取新文件,整理后丢进队列,等着第二天早上喂给我的简报。这套流程跑了大约六周,每一次的退出码都是0,日志里干干净净,调度面板上挂着连续四十次绿色运行。如果有人问我哪段自动化最靠谱,我会毫不犹豫报上它的名字。

然后我发现简报变薄了。不是空白,是变薄——有些天两条,有些天没有。我一直用"最近没什么新闻"来解释。直到某天起了疑心,翻出日志,才发现自己连怀疑的抓手都没有:日志上写着"已抓取条目,已写入队列",就这一句,没有数量,没有ID,是我自己当初随手写下、从未验证过的一句话。


于是我加了一行代码——一个计数——手动重跑。

零。每一个夜晚,都是零。四十次,全是零。

一个被悄悄改名的参数

HTTP请求返回的是200,附带一个空数组。原因是查询里的一个参数名在对方那边被改掉了,从since变成了from_date,而接口对未知参数的处理方式是——愉快地忽略它。我的循环遍历了一个空列表,然后正常结束,这正是一个遍历空列表的循环该有的行为。没有异常抛出,没有重试触发,没有任何东西被记成问题,因为在这套技术栈的每一层看来,确实什么问题都没有。

这就是我想写的故障模式。硬故障我有熔断器兜着,濒死的智能体有健康监控盯着,重复触发的任务有去重挡着。这三样东西都在盯着"有事情发生"。没有一样在盯着"没有事情发生"。而"没有事情发生"不会抛异常。

报错会呼你,沉默不会。

这件事拖了六周才被发现,原因在结构上,不在懒惰上。异常有一个瞬间:它触发,处理器捕获,告警发出。而一次无声的空转没有瞬间,它只有一段时间上的形状,而且只有当你画对了图表才看得见。

我的监控画错了图表。我追踪的是运行状态(成功/失败)和运行时长,两项都完美。我没追踪的是唯一重要的那个数字:产生的效果。运行完成了,效果是零。我有一块绿色的面板,因为它测量的是系统对自己的评价。

断言效果,而不是断言尝试

修复方案不是加更多日志,而是换一个问题:不问"它跑了吗",问"它改变了什么吗"。

现在每个任务都必须声明一次成功运行在副作用层面长什么样——写入了多少行、发出了多少条消息、创建了多少文件、吐出了多少个ID。然后任务在报告成功之前,必须先断言这一点。

关键不在那个辅助函数,而在于任务现在可以因为"什么都没做"这个罪名而失败。在此之前,"什么都没做"和"什么都做了"是同一个结果——成功。这意味着我的成功信号测量的是另一个宇宙。

有两件事我必须做对,而第一次都做错了。

  • 不能失败的断言不是断言。我的第一版写的是"行数大于等于0",那是一件穿着安全背心的同义反复。它在空列表上通过了,让我又安心了两天。断言必须真的能在你担心的那件事上失败——这话听起来显而易见,直到你在凌晨一点写下它。
  • 断言效果,而不是断言尝试。状态码等于200是尝试检查,写入ID数量大于0是效果检查。整起事故就是所有尝试检查都通过、而效果为零的案例。如果你的断言能被一个什么都没做的系统满足,那它不是断言,是装饰。

预期为空,不等于意外为空

这里我差点矫枉过正,也是最微妙的部分。

我有些任务在大多数时候本来就该什么都不做。一个盯着信息流新条目的观察者,在平静的日子里就该找到零条。如果我把"零效果"在所有地方都设成硬失败,那些任务会每晚尖叫,我又会回到静音告警频道——而我早就知道,那比没有告警更糟。

所以断言不能是"产出大于0",而必须是"数据源被成功查询了,而且这个空是可信的"。这是另一种检查:请求成功了,返回了预期的结构,而且这个空是一个明确的、格式良好的空,而不是一个默认值。在我的案例里,破绽一直摆在那里:响应里没有分页信封。一个真实的空结果会带着游标和总数回来,一个被静默忽略参数的空,回来的是一个光秃秃的方括号。

落到代码上:对那些可能合法地什么都不产出的任务,断言信封,而不是断言数量。请求成功、结构正确,那么这里的零就是可以接受的——因为我们已经证明了查询被真正执行。

这样一来,"平静的一天"和"接口不再理会我的请求"看起来就不一样了,而这正是全部的意义所在。

三种状态,而不是两种

这才是最终让两类任务都能用起来的改动。现在每一次运行都以三种状态之一结束,而它们不是一回事:

  • succeeded_with_effect——它做了那件事,附带一个计数。
  • no_work_needed——它什么都没做,并且证明了"什么都没做"就是正确答案(上面的信封检查通过了)。
  • failed——包括JobProducedNothingError,也就是说它跑了,而效果的缺席没有得到解释。

只有第三种会告警。第二种是一个正常的、无聊的、预期之中的结果,在简报里表现为一行安静的字。在这个拆分之前,"什么都没做"和"干成了"无法区分——而告警系统也就无从分辨。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
伊万卡罕见现身白宫迎贵客!穿中国设计师郭培作品亮相

伊万卡罕见现身白宫迎贵客!穿中国设计师郭培作品亮相

列国漫游
2026-09-25 05:36:44
3名赴泰女子被囚禁,泰国警方解救时抓获4名男子!现场缴获铁链及吸毒用具

3名赴泰女子被囚禁,泰国警方解救时抓获4名男子!现场缴获铁链及吸毒用具

红星新闻
2026-09-24 13:29:55
3-1,世界第60胜世界第22,53岁卡纳瓦罗率队掀翻伊朗,终结5连败

3-1,世界第60胜世界第22,53岁卡纳瓦罗率队掀翻伊朗,终结5连败

侧身凌空斩
2026-09-24 23:56:01
邵佳一真大胆,9年绝对主力被拿下,助国足3-0大胜,球迷:这人早该换了

邵佳一真大胆,9年绝对主力被拿下,助国足3-0大胜,球迷:这人早该换了

我就是一个说球的
2026-09-24 22:43:44
彻底不要底线的荒诞操作,终于引起全网网友公愤了!

彻底不要底线的荒诞操作,终于引起全网网友公愤了!

胖胖说他不胖
2026-09-24 10:55:23
刘国梁,现场见证国乒这场历史性失利!王楚钦:有很大部分原因在我这里

刘国梁,现场见证国乒这场历史性失利!王楚钦:有很大部分原因在我这里

南方都市报
2026-09-24 22:19:43
彻底怒了!韩国体协会长柳承敏:日本亚运会是我见过办赛水平最差的大赛

彻底怒了!韩国体协会长柳承敏:日本亚运会是我见过办赛水平最差的大赛

新杀猪的秀才
2026-09-24 15:27:42
国乒男团不敌东道主日本队,无缘亚运乒乓首金

国乒男团不敌东道主日本队,无缘亚运乒乓首金

澎湃新闻
2026-09-24 19:24:04
美国欢迎晚宴的国宴菜单公布,恰逢中国中秋节,但是月饼不再出现

美国欢迎晚宴的国宴菜单公布,恰逢中国中秋节,但是月饼不再出现

光电科技君
2026-09-24 23:26:47
单日狂揽32金!24日结束,金牌榜更新:中国奖牌破百 诞生大遗憾

单日狂揽32金!24日结束,金牌榜更新:中国奖牌破百 诞生大遗憾

大秦壁虎白话体育
2026-09-24 22:07:17
特朗普亲自接机,最破防的是日本!

特朗普亲自接机,最破防的是日本!

环球策论
2026-09-24 19:11:15
大熊猫“平平”“福双”将会落户美国亚特兰大动物园

大熊猫“平平”“福双”将会落户美国亚特兰大动物园

界面新闻
2026-09-24 23:02:46
哥哥的鲜血、父亲的教诲、10·7的火光:内塔尼亚胡为何对哈马斯、真主党和伊朗战意十足?

哥哥的鲜血、父亲的教诲、10·7的火光:内塔尼亚胡为何对哈马斯、真主党和伊朗战意十足?

寰球经纬所
2026-09-23 13:44:00
越南深度改革对我国的启示

越南深度改革对我国的启示

大国老记老顾
2026-09-24 11:18:00
韩国游泳选手:潘展乐会主动过来开玩笑,还叫我“欧巴”逗我

韩国游泳选手:潘展乐会主动过来开玩笑,还叫我“欧巴”逗我

懂球帝
2026-09-24 22:50:12
亚运会|王楚钦谈男团失利:心情非常沉重,能力上还有差距

亚运会|王楚钦谈男团失利:心情非常沉重,能力上还有差距

北青网-北京青年报
2026-09-24 21:31:04
中东国家已然看清:采购再多的中国先进武器,也难以换来长久安全

中东国家已然看清:采购再多的中国先进武器,也难以换来长久安全

兵卒史
2026-09-24 20:27:00
网传比亚迪陷入风波,员工怒了,到底咋回事?

网传比亚迪陷入风波,员工怒了,到底咋回事?

慧翔百科
2026-09-23 12:05:38
再这么打下去,亚运会真快办不下去了!东道主日本苦拼两天才8金

再这么打下去,亚运会真快办不下去了!东道主日本苦拼两天才8金

荆楚寰宇文枢
2026-09-24 23:12:47
三年前,人人热议的成都“牵手门”事件,彻底改变女主的人生轨迹

三年前,人人热议的成都“牵手门”事件,彻底改变女主的人生轨迹

四海神君
2026-09-24 13:40:04
2026-09-25 07:03:00
Ping值焦虑
Ping值焦虑
有态度网友ytd
253文章数 104关注度
往期回顾 全部

科技要闻

Claude在DNA里挖出新发现!大佬张锋点赞

头条要闻

5架战机飞越白宫 致敬中美两国元首夫妇

头条要闻

5架战机飞越白宫 致敬中美两国元首夫妇

体育要闻

巴图姆,以父之名

娱乐要闻

93岁游本昌去世 最后一句话惹人泪目

财经要闻

跌光1400亿,“女王”亏麻了

汽车要闻

全新第四代博越L 上市限时价9.29万元起

态度原创

房产
亲子
家居
艺术
公开课

房产要闻

中秋、国庆小长假来了,但我劝你别离开海口

亲子要闻

到底谁幼稚?!

家居要闻

2026建博会(广州) 公装联探展交流活动

艺术要闻

看完她的油画我沉默了:风景静物美成壁纸,笔触多变,色彩清新到犯规!

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版