先 getAlarm() 再 setAlarm(),预览环境别绑真 Durable Object
@graycoin 复述 @shmily7 分享的 Durable Object alarm 死循环,并总结三条习惯:先 getAlarm() 再 setAlarm();预览环境不要绑定真实 Durable Object;AI 生成的存储与调度代码要自己再读一遍。
- 适用产品
- Durable Objects
- 来源
- 作者经验𝕏
- 作者
- @graycoin
要点
- 作者复述:一个没人用的测试项目里,AI 写的 Durable Object alarm 进入死循环,读写约 6 万亿次。
- 按他的描述,模型在 runAlarm 里又排了一次闹钟,还复用了快过期的 checkpoint;TTL 30 天、刷新窗口 7 天,问题潜伏约三周才爆发。
- 他把它归结为按次计费的 serverless 碰上没有熔断的自调度代码,建议写 alarm 前先 getAlarm()、没有才 setAlarm();预览环境别绑真实 Durable Object;AI 生成的存储与调度代码自己再读一遍。
- Cloudflare Alarms API 文档写明:每个 Durable Object 同时只有一个 alarm,再调用 setAlarm() 会覆盖原设置;在构造函数里设置 alarm 时应先检查是否已存在。
原始来源
原始来源 · 发布
到 𝕏 阅读🔆
@graycoin · 𝕏 原帖
Codex,以后我们小心点吧。 一位老哥 1 万刀的 Cloudflare 账单。不是被攻击,不是跑了大流量,是一个没人用的测试项目,Durable Object 的 alarm 被 AI 写成了死循环,读写了 6 万亿次。 Vibe coding 写到一半,模型顺手在 runAlarm 里又排了一次闹钟,还复用了快过期的 checkpoint。TTL 30… https://t.co/JlKn7Pytvj
其他推荐阅读
作者经验账号级用量计费产品
预算提醒是喇叭,不是刹车
@GUYUE_LGY 引用 Cloudflare Budget alerts 文档:费用跨过阈值只发邮件,不会暂停或封顶用量。交给 AI 自动运行前,作者只查一件事:到线以后系统究竟做什么。
其他产品
hfcorriez:两个月被 AI 额外消耗 100 多刀,邮件沟通后称已取消。
@hfcorriez 称被 AI 坑了,两个月额外多消耗了 100 多刀。他称发邮件给 Cloudflare 两个来回讲清楚后,费用就被取消了,并附截图显示两笔负数金额(-$31.92、-$75.42),状态为 Fully Applied。
作者经验Workers +4
Cloudflare 每月 5 美元,账单却没有跟着封顶
不追高(@Ariella1213)在 X 长文中说明 Workers Paid 的 5 美元是每月最低收费,各产品限制和预算告警都不封顶账户账单,并讨论 denial-of-wallet、写入放大、延迟停机与后台重试如何增加费用。