用途:在 Cloudflare 边缘构建有状态、可协调的应用,创建或审查 Durable Objects 代码。适用场景包括聊天室、多人游戏、协作文档、库存与预订等强一致需求、多租户按实体存储、WebSocket 持久连接、按实体的定时任务。不适用于无状态请求处理、需要最大全球分布或高扇出独立请求的场景。
主要能力:创建 Durable Object 类;实现 RPC 方法、alarms、WebSocket 处理器;审查现有 DO 代码的最佳实践;配置 wrangler.jsonc/toml 的绑定与迁移;使用 @cloudflare/vitest-pool-workers 编写测试;设计分片策略与父子关系。
使用方式:优先检索官方文档而非依赖预训练知识,资料给出 Docs、API Reference、Best Practices、Examples 四个 URL。核心规则:围绕协调原子建模,一个聊天室/游戏/用户对应一个 DO;用 getByName() 做确定性路由;使用 SQLite 存储并在迁移中配置 new_sqlite_classes;仅在构造函数中用 blockConcurrencyWhile() 初始化 schema;使用 RPC 方法而非 fetch() 处理器(兼容日期 >= 2024-04-03);先持久化再缓存;每个 DO 仅一个 alarm,setAlarm() 会替换已有 alarm。
限制与反模式:禁止单一全局 DO 处理所有请求、每次请求都调用 blockConcurrencyWhile()、仅将关键状态存于内存、在相关存储写入之间使用 await、在 fetch() 或外部 I/O 期间持有 blockConcurrencyWhile()。资料未提供收费、价格与平台支持等更多信息。