按需运行:没人用,就不花钱
三个自检问题、应用的资源上限,以及常驻这个例外怎么管。

本课目标
读完这一课,你将能够
- 用三个问题检查一个功能是不是在「没人用时也花钱」
- 说出 AIDC 应用的资源上限,以及用完会怎样
- 说出「常驻」什么时候是允许的,要写明哪三件事
三个问题
云上的账单,多半不是花在有人用的时候,而是花在没人用的时候:一个一直开着的进程,一条一直挂着的连接,一个永远在转的定时器。设计任何新东西,先问自己三句:
没人用时,它还在跑吗?
SDK 的实时连接在页面隐藏 1 分钟后自动断开,切回来再续上,不丢不重。
它是不是一直挂着连接?
不要用 setInterval 轮询服务端,部署时会告警;数据一变才推送。
它会随页面数、设备数线性增长吗?
一个数据源一条数据流,多个应用订阅;不是每个看板各装一个发布端。
三个问题里任何一个的答案是「是」,就改成按需,或者写明为什么必须这样。
上限是安全带
先算账,再开。按量计费的东西——函数时长、流量、模型 token、实时转写、外部 API——上线前先估一下「次数乘单价」,再决定要不要开、开多大。
AIDC 给每个应用一组缺省上限,清单里不写就用缺省值:
计算分钟用完,应用的请求返回 429 quota_exhausted,数据变化和定时也不再开跑,下月恢复;其他上限各管一样:每日 token 用完,模型调用返回 429,明天恢复;超过每日数量的通知不再发出。把上限调高,等于允许它花更多的钱,部署时会告警。随时可以看用量——本月的计算分钟、各项上限、定时的下一次和今天的通知:
aidc app usage <slug>
把上限当成安全带:一个写错的条件,一个漏掉的冷却,会先在用量上报警,而不是拖到月底才在账单上发现。
常驻是有主的例外
有些东西必须一直开着,比如装在数据源旁边的发布端。这是允许的,但它是例外,例外要有主人。要写清三件事:
- 归谁
负责人是谁,出了问题找谁。
- 为什么
为什么不能按需。比如数据源没有变化信号,只能常驻一个探针。
- 怎么关
不需要时怎样停掉、吊销 Key、清掉数据。
「开完就关」是同一个道理:临时开的服务、后台进程、测试用的 Key、测试数据、定时任务,用完就关掉、吊销、删除。
算一笔闲时的账
| 一直开着 | 按需 | |
|---|---|---|
| 看板 | 每隔几分钟整页刷新一次 | 有人打开时读一次,有变化才推 |
| 服务保活 | 每分钟起一个任务去看服务还活着吗 | 让服务自己重启,不用定时去看 |
| 提醒 | 每 5 分钟查一遍有没有事 | 有事才触发,冷却期内只提醒一次 |
| 没人用时的费用 | 全天都在花 | 只剩必须常驻的那一小部分 |
再算一笔对比:同样是「每天要有结果」,每 5 分钟查一遍是每月 8,640 次,每天汇总一次是每月 30 次,差了 288 倍。而这两种做法,页面上看到的常常是同一份数据。
要点
- 账单多半花在没人用的时候:常驻的进程、挂着的连接、永远在转的定时器。
- 三个自检问题:没人用时还在跑吗?一直挂着连接吗?会随页面数线性增长吗?
- 每个应用缺省每月 2,000 计算分钟、每天 20 封通知;计算分钟用完返回 429,下月恢复;超出的通知不发。
- 常驻是有主的例外,要写明归谁、为什么、怎么关。
练一练
写一份闲时账本
在一个安静的下午,看看没人用的时候你的系统还在做什么。
列出没人用时仍在运行的东西:进程、定时任务、长连接,并写上各自的负责人。
对每一项问三个问题,把答案是「是」的标出来。
挑最贵的一个,写出怎么改成按需:什么变化时才启动,谁负责关。
小测
选一个答案,马上看解析。
Q1页面被切到后台超过 1 分钟,SDK 的实时连接会怎样?
实时连接只在有人看时挂着;续上时不丢不重。
Q2一个应用本月的计算分钟用完了,会怎样?
上限用来在账单出问题之前先停下来;调高上限要主动改清单,部署时还会告警。
Q3什么时候可以让一个进程常驻?
重要不是常驻的理由;无主的常驻,才是账单里最难查的那一笔。