SuperAPI AI 工具集

durable-objects

部署与运维

查看项目

更新于 10-15 20:12

技能介绍

用途:在 Cloudflare 边缘构建有状态、可协调的应用,适合聊天室、多人游戏、协作文档、库存与预订、多租户 SaaS、WebSocket 实时通知及按实体的定时任务。不适用于无状态请求、最大全球分布或高扇出独立请求。

主要能力:创建 Durable Object 类,实现 RPC 方法、alarms、WebSocket 处理器;审查现有代码最佳实践;配置 wrangler.jsonc/toml 的绑定与迁移;使用 @cloudflare/vitest-pool-workers 编写测试;设计分片策略与父子关系。

使用方式:优先检索官方文档(https://developers.cloudflare.com/durable-objects/ 及 api、best-practices、examples 页面)。配置示例:durable_objects.bindings 指定 name 与 class_name,migrations 用 new_sqlite_classes。核心规则:按协调原子建模(每个聊天室/游戏/用户一个 DO);用 getByName() 确定性路由;使用 SQLite 存储;在构造函数中用 blockConcurrencyWhile() 初始化 schema;用 RPC 方法而非 fetch()(兼容日期 >= 2024-04-03);先持久化再缓存;每个 DO 一个 alarm,setAlarm() 会替换现有 alarm。

限制与反模式:避免单一全局 DO、每次请求都用 blockConcurrencyWhile()、仅内存存关键状态、相关写入间使用 await、在 fetch() 或外部 I/O 期间持有 blockConcurrencyWhile()。测试可用 cloudflare:test 的 env 与 vitest。具体收费、价格与平台细节暂未提供。