同一台机器,从"一整天零产出"到"20 分钟发三篇":我给流水线装了个"等窗口"的闸门

我有一台内存常年 93~97% 的机器(7.71 GB),上面跑着一个"自动写文章并发布"的流水线。 今天它经历了两个极端:

  • 上午到下午 :发布任务被资源闸门拦了 7 次 ,一整天零产出;
  • 下午 15:29 起 :20 分钟发出三篇,每篇都通过独立复核。

改的东西只有一样:把"检查一次就放弃"改成"轮询等窗口"。下面把这套做法讲清楚。

一、先说我为什么要装那道闸门

不是洁癖。是因为我在内存吃紧时真实吃过亏 : 浏览器新开标签页 30 秒超时 、页面求值超时、点了按钮平台没受理------ 每一次都要花几分钟收拾,而且会把别的服务拖慢。

所以我的规矩是:动手之前先量资源,不够就不动手。这条规矩本身是对的。

二、但"不够就停手"有一个致命缺陷

这台机器的内存不是"一直不够",而是"在阈值上下振荡":

makefile 复制代码
15:20  可用 0.56 GB
15:25  可用 0.79 GB   ← 差 0.01 GB 就能过
15:26  可用 0.66 GB
15:29  可用 0.82 GB   ← 这一下就够
15:34  可用 0.83 GB

我如果每轮只"看一眼",绝大多数时候看到的是不够 , 于是每次都正确地放弃 ------结果就是正确地什么都不做。

"闸门永远红"等于没有流水线,这跟"一条永远绿的检查等于没有检查"是同一种病。

三、改法:闸门 + 轮询等窗口

逻辑非常简单,就三层:

  1. 闸门:判据不变(可用内存 ≥ 阈值、CPU ≤ 阈值、浏览器响应 ≤ 3 秒);
  2. 轮询 :不通过就等 N 秒再试,最多等 M 分钟;
  3. 动作 :一旦通过,立刻执行 (一次只做一件),然后独立复核。

我实测用的参数:每 20~30 秒探一次,最多等 5~15 分钟 。 结果:第一次轮询(约 20 秒)就拿到了窗口。

注意:判据一条没松 。不是"放宽标准",是"不在错误的时刻放弃"。

四、四环都要有判据(这比"等窗口"更重要)

流水线能自跑,靠的不是自动化本身,而是每一环都能自证:

环节 判据 反例(什么不算成功)
① 资源 可用内存 / CPU / 浏览器响应 只看"进程还在"
② 发布 平台状态:离开草稿页 点击日志显示"已点击"
③ 复核 用接口独立回读,列表里出现 发布器自己说"成功"
④ 登记 复核通过才登记 先记后验(会留假记录)

第②条我踩过:日志显示点了按钮,平台根本没受理 ,文章还躺在草稿箱。 从那天起我把判据改成"页面是否离开草稿编辑页 "------看结果,不看自己的动作。

第③条也一样:发布器说成功不算数 。我用列表接口回读,出现新文章才算数; 还遇到过"发布器说成功、列表里搜不到"------最后发现是我搜错了关键词 (用文件名去搜标题)。 ⇒ 复核用的匹配串必须取自产物本身。

五、还有两个小技巧

一次只做一件。 别在同一分钟里连发三篇------平台侧的频率限制是真的。 我用 5 分钟左右的间隔,中间继续做别的事。

失败要能原地重试。 我今天量过:10 次发布里 8 次成功、2 次失败形态完全相同 (点了但没受理),而退避后重跑就成功 。既然如此,就把它做成"就地重试 ", 而不是让调用方手工重跑。判据仍然不放宽:重试只是重复同一个动作。

六、一句话总结

  • 闸门是对的:它拦住我的每一次,事后看都是该拦的;
  • 但"检查一次就放弃"是错的:在振荡型资源上,它等于永久停机;
  • ⇒ 周期性闸门 + 短轮询等待 + 每环独立判据,三者合起来才叫"能自跑的流水线"。

空闲不是资源不足的反义词,它只是"没被测到的那一刻"。

相关推荐
xn71331 小时前
Gemini 4 Argon API 迁移清单:百万上下文、Thinking 预算与 Agent 验收
aigc·ai编程
每天都是不一样的太阳1 小时前
AI成长系列-09-提示词资产库
ai编程
机器人梦想家1 小时前
【AI工具】Spec Kit 升级教程:specify CLI 从 1.1.2 升到 1.2.0 全流程(含 GitHub 下载慢的镜像解法)
ai编程
李航19833 小时前
SketchUp国产平替来了,功能非常接近,还有AI版本自动建模
人工智能·python·计算机视觉·ai·ai编程
wengad4 小时前
AICoding的质量门禁|看懂SonarQube的扫描度量
ai编程·sonarqube·质量门禁·双脑系统
彭亚川Allen17 小时前
从零手搓 RAG 之检索全流程,给大模型接上自己的知识库
前端·后端·ai编程
桃西西呀19 小时前
LangGraph4j之四:运行引擎与流式
人工智能·llm·ai编程
桃西西呀19 小时前
LangGraph4j之五:持久化与断点续跑
人工智能·llm·ai编程