Durable Objects 闹钟(Alarms)
Cloudflare 官方说明 Durable Object alarm 的设置、重试与删除行为。
- 适用产品
- Durable Objects
- 来源
- 官方说明Cloudflare 开发者文档
要点
- 每个 Durable Object 同一时间只能有一个 alarm;已有 alarm 时再调用 setAlarm 会覆盖原设置。alarm 让对象不依赖传入请求保持活跃也能执行工作,alarm() 处理函数里也可以再设置后续 alarm。
- alarm() 保证至少执行一次。抛出未捕获异常时,会以 2 秒起步的指数退避重试,最多 6 次;重试只针对最近一次 setAlarm() 调用。
- 文档提示:若在构造函数里调用 setAlarm,应先检查是否已设置 alarm,因为闲置对象被唤醒时,构造函数先于 alarm() 运行。在 alarm() 内调用 deleteAlarm() 只能尽力阻止重试,不作保证。
原始来源
其他推荐阅读
作者经验Workers +5
别让小项目跑出大账单:Cloudflare 的四层费用防护
David Z(@davezfr)在 X 长文中面向 Vibe Coder,整理预算提醒、付费路径停止条件、自动暂停,以及由 personal agent 核实并暂停的四层防护。
Durable Objects
浮世绘:Durable Object alarm 死循环,报告账单 US$10,811.41。
@shmily7 报告无人使用的测试项目中 Durable Object alarm 陷入循环,后称为避免服务停用已全额支付 US$10,811.41。Cloudflare 人员 Ashley Peacock 公开回复称正在内部跟进,会再回复。