云工持久事务适配
键值。豫 用当前 Durable Object 的存储实现[持久事务接口](../../../豫言操作系统接口/持久事务/规范.汉语.md) 0.2.0。
- 事务:
执行持久事务先在豫言里规范化参数 JSON,再经宿主云工持久事务执行安全在storage.transaction回调里以durable-transaction事件重入_start;宿主把回调或平台的失败作为值返回,适配转成可捕获的豫言异常(消息持久事务失败:…)。事务函数只在该入口内可用,读、写、删除、列举都作用于平台事务对象。 - 直接访问:
读取持久仓键值等五个函数调用storage.get/put/delete/list/deleteAll,只在持久对象的普通事件里可用,在durable-transaction入口内一律拒绝。 - 值的处理:写入经宿主原生
JSON.parse校验并以结构化值存储(云工持久写入值安全:键 1–2048 字节、值 ≤ 2 MiB、嵌套 ≤ 32 层、拒绝宿主保留的单键对象,失败作为值返回再转成可捕获异常);读取直接返回宿主序列化的 JSON 文字,不在豫言里解析再表示(因此控制字符、增补平面字符不会被豫言 JSON 编解码器影响);列举经云工持久列举值安全规整选项(空字符串视同未指定)并限制结果 ≤ 8 MiB。0.2.0 起读取持久事务键值、写入持久事务键值也走这两条路径,签名与语义不变。 - 不做:适配不保存状态,不解释应用的键与业务规则;不暴露
allowConcurrency、noCache、allowUnconfirmed,也不提供 SQL 与同步事务(另见云工宿主)。
一致性验证用例见 豫言操作系统/宿主/云工/一致性验证/(含持久事务、持久告警、持久独占三个接口与宿主壳的 Node 测试和试验应用)。