服务对象与地域限制
PuppyIP 仅面向海外合规企业及其授权人员提供服务,不面向中国大陆地区开放或提供代理服务。本服务仅限用于中国大陆境外的合法业务活动,严禁在中国大陆境内使用本服务。
代理 IP 或服务器位于境外,不改变上述限制。不得通过中转、转接、共享或转售向中国大陆境内的最终使用者提供本服务。使用前请阅读用户服务协议。
本文要点
- 新宽限适用于 Workers 运行时更新时的在途请求和连接,涵盖流式HTTP响应与 WebSocket。
- 最多20分钟按旧运行时进程计算;宽限结束后,剩余请求和连接会被终止。
- WebSocket,包括使用休眠API的连接,可能提前断开;应用仍需要重连、安全重试和恢复已保存状态。
- CPU额度、响应后的 waitUntil() 时间和用户部署代码的行为,要分别按对应规则判断。
20分钟给了谁,什么时候开始算?
Cloudflare 的10月12日公告把运行时更新宽限从最多30秒改为最多20分钟。运行时是执行 Worker 代码的平台进程;这次变化为正在处理的长HTTP请求、流式AI响应和实时 WebSocket 留出更多收尾时间。
更新后的运行时准备好后,新HTTP请求转向新版本;旧进程停止接收这些请求,继续处理已有工作。宽限按每个旧进程计算,结束时仍未完成的请求与连接会被终止。
不能把它理解为每个请求开始后都有20分钟。计时属于旧运行时进程,而不是每条请求单独重新计时;崩溃、资源压力或关停还可能提前中断。公告没有给出逐账户启用时刻或需要用户打开的配置开关。
流式输出更容易收尾,恢复逻辑仍有用
假设一个流式AI回答已输出一半,旧运行时此时进入更新宽限。更长窗口给它更多完成机会,却不保证最后一个片段一定送达。这个例子用于说明设计选择,本站没有运行账户 Worker 或实测这次更新。
客户端应区分回答已完整结束、连接中断和请求结果未知。只看到部分文字时,不宜自动把它记为完整答案;保存请求标识、已确认进度和最终完成状态,可以帮助后续恢复与排错。
有写入、扣费或发送消息等副作用的请求,应先查任务结果再决定是否重发。安全重试需要幂等设计,即同一操作重复请求不会重复产生业务结果;单纯延长客户端超时解决不了这一问题。
WebSocket 重连后,怎样接回原会话?
公告明确要求应用准备 WebSocket 重连,并说明连接可能在宽限结束前断开,使用 WebSocket Hibernation API 的连接也包括在内。休眠让 Durable Object 在适当条件下释放内存,同时保持连接;它不等于连接永远不会断。
先在客户端关闭与错误处理分支中安排有退避的重连,再验证身份、恢复订阅,并从最后确认的消息位置继续。这里是实现建议,具体重试间隔和恢复协议由应用定义,公告没有提供通用参数。
不要只依赖内存或连接附件保存必须跨断线保留的业务进度。Durable Objects 文档说明,serializeAttachment() 的附件能跨休眠保留,但连接关闭后会丢失;需跨连接生命周期保存的数据应写入持久化存储。
四种时间限制要分开检查
更新宽限与CPU时间是两回事。CPU时间计算实际执行代码的时间,等待网络通常不计入;更长宽限不会把CPU限额改成20分钟,也不会取消原有计划、内存和请求限制。公告未宣布新的价格或单独收费规则。
HTTP触发的 Worker 在客户端保持连接时,没有统一的硬性持续时长上限,但仍受运行时更新和资源限制影响。响应已发出或客户端已断开后,ctx.waitUntil() 只能继续最多30秒;不能借更新宽限把这段时间延至20分钟。
用户部署自己的新代码也要单独判断。Durable Objects 的 WebSocket 文档明确说明,代码更新会重启对象并断开已有连接。不要把平台运行时宽限当作所有部署都能保留连接的承诺。
先检查哪三条恢复路径?
第一步,列出长HTTP流、WebSocket和会产生副作用的请求,分别标明完成信号与最后确认进度在哪里保存。若只记录“连接成功”,还不足以判断任务是否完成。
第二步,在自己的隔离测试环境模拟中断,检查客户端重连、重复请求去重和状态恢复。恢复后既要能接回后续内容,也要确认没有重复写入;这些是建议检查项,并非本站已执行的测试结果。
第三步,对照日志中的关闭原因、请求结果及资源错误区分问题来源。把宽限用作额外恢复空间,同时保留失败处理;不要从一次连接持续较久推算可用性保证或正式产品在线率。
资料来源
常见问题
要把 compatibility_date 改成10月12日吗?
这次公告没有要求修改 compatibility_date 或加入兼容flag。它描述的是平台运行时更新宽限;不应为启用它猜一个配置。应用原有兼容设置仍按对应文档管理。
只发生断线,能确认是运行时更新吗?
不能。客户端、网络、应用部署、资源限制等都可能中断连接。需要结合自己的日志、关闭原因及当时的平台信息定位,不能仅凭断线时间归因。
这次可以减少多少失败率?
公告没有提供适用于你的应用的成功率数据。是否改善,要根据自己明确窗口和样本的完成率、重连及恢复结果判断;更长宽限本身不能换算成可用性数字。