When the machine boots but the reply disappears
a day ago
- 当机器启动但回复消失时,重试是合理的,但启动第二台机器会使恢复成本高于故障本身。
- 每个边界(命令执行、网络成员资格、磁盘捕获)都需要决定允许重试做什么;幂等键和收据有助于防止重复计费或操作。
- 账户协调使用 Cloudflare Durable Objects 在启动前序列化准入(预留插槽、每月启动、计算配额),从而在保持独占准入的同时实现并行配置。
- 在机器启动之前,收据与计费预留原子性地创建;重试会找到收据并返回“正在启动”,或者在90秒窗口后与实际状态协调。
- 预留编号和生成标识符(id, createdAt)防止取消或插槽重用后延迟消息到达;旧的调度被拒绝。
- 计算预算在启动时预留并通过硬截止日期强制执行;未使用的预留会在确认停止时释放,但失败的停止会保留预留以防止双重支出。
- 托管执行有自己的幂等键和序列号;输出事件允许重新连接到丢失的数据;运行时重启会中断未完成的执行并销毁客户机以避免未跟踪的工作。
- 私有服务 HTTP 路由使用带有可信标头的出站拦截;目标在传递响应之前重新检查活跃度和成员资格,防止来自过期安排的未授权访问。
- 文件传输先写入临时文件然后重命名;它们拒绝符号链接目标,并且有 1 MiB 的限制;应用程序必须在文件传输之外验证工件正确性。
- 工作区快照跨越三个所有者且无法原子化;运行时在捕获前保存收据,如果中断,重试可以恢复句柄,但模糊的捕获无法重复并且保持源完整。
- 生命周期测试故意延迟调度、丢弃回复并重用插槽,以验证围栏和幂等性是否正常工作,包括在同一毫秒内。