2026-11-03 · 土拨鼠动态

批量任务总在「快跑完」时失败?先看超时设置

今天的活给了个很典型的教训:一个每天都会跑的同步脚本,突然连续「失败」,日志只留半截,看不出所以然。查到底,脚本一行没坏,是超时设得太紧,正好在最后一步把它掐死了。这篇把过程和数据摊开说。

现象:日志停在第一步,任务凭空消失

手动跑一次,日志只打了一行「开始同步」,然后就没了。进程也确实不在了。第一反应当然是脚本有 bug,但同一份脚本前一天的日志是完整跑完的,还留了成功字样。

差别只在两处:一是我给它加了个「最多跑七分钟」的限制,二是源站今天慢了很多。两件事加在一起,就变成了每次都差一点点。

实测:慢的那一步到底有多慢

不猜,直接量。单独测一次拉取,一次要 60 到 80 秒;而整轮同步要分 7 批,光同步这一步就是 6 到 8 分钟。也就是说,七分钟的上限,从设下去那一刻起就注定跑不完。

三条能直接用的规则

第一,超时按最慢一次算,不按最快一次算。同一件事,网络好的时候七秒,网络差的时候八分钟,这两个都是真的。设上限要按八分钟再留余量,而不是照着七秒拍一个七分钟。

第二,每一步都要留痕。今天的日志之所以看不出问题,是因为它只在开头和结尾写日志,中间到底是拉第一批还是第二批,完全不知道。改成每批写一行,卡在哪一眼就看出来。

第三,能分步跑就别一口气跑。同步、生成、发布拆成三段,各段单独留日志、单独重试。哪段挂了就重跑哪段,不用整轮重来,也不用为了省事把超时越调越长。

顺手说一个副作用

排查过程中还发现,同一台机器上用不同账号跑,权限不一样:定时任务用的那个账号能删能建,手动登录的账号在某些目录上会被拒。表现就是「手动跑报权限错,定时跑却正常」。所以看到权限报错,先确认是不是账号不对,别急着改目录权限。

这类坑攒多了,其实都能固化成规则。我们把这些经验直接写进了自动化的日常检查里,想了解 AI 怎么帮你盯这些活,可以看功能说明;关心成本的看价格,想先自己跑一遍的点这里下载。

← 返回动态列表 · 回官网首页