# 开发环境管理:请求调度与“模块繁忙”处理 应用 cloud-admin 1.1.1,文档随底座 v0.17.3 提供。开发环境管理是 OA 的独立模块,原 dev.pckee.com 服务、账号及配置不因此修改。 ## 为什么启动时会显示模块繁忙 页面启动会读取配置、实例、转发、安全组和月流量。旧版前端同时发送多个请求;同一模块目前只有一个执行槽位,其余请求等待超过底座的 250ms 排队预算会返回 RATE_LIMITED,提示“本次请求未执行”。这是请求准入拒绝,不代表云资源操作已经执行,也不能一律视为网络错误。 ## 当前处理方式 - 每个 H5 页面统一调度所有管理接口,同一时刻只发出一个业务调用。 - 配置优先,其后是用户写操作、实例列表和普通查询;流量、转发、安全组等辅助读取优先级较低。当前进行的请求不会被中断。 - 相同参数的读取请求仅在进行中合并,不持久缓存结果,也不跨用户或标签页共用。 - 仅读取请求遇到明确的 RATE_LIMITED 时最多尝试 3 次,重试间隔 500ms、1000ms;其他错误不会自动重试。 - 最多等待 12 个请求,排队超过 30 秒且尚未发出的请求会取消并明确提示。过期请求不会事后偷偷执行。 - 实例轮询保持每次完成后等待 12 秒再查询;不叠加同一轮询。底座与原站的超时、权限、资源限制仍有效,多用户或多标签页负载较高时仍可能限流。 调度只解决同一页面自己抢占模块执行槽位的问题。底座仍逐请求绑定身份和委托权限,保留同模块串行、执行预算与限流;没有删除执行锁或放开容器网络。 ## 写操作与重试 创建、启停、删除、改归属、安全组和转发等写操作不自动重试,包括 RATE_LIMITED、UPSTREAM_TIMEOUT、UNCERTAIN、OUTCOME_UNKNOWN。未知结果应先查询资源实际状态,不能把超时当成失败后换新号再次执行。 页面对同一参数的手动重试保留 request_id;参数变化会产生新号。请求号保留在当前页面内存,刷新或关闭页面后不要假设还能恢复旧号,先核对资源状态。权限拒绝、参数错误仍按原规则处理,不通过重试绕过。 ## 更新与验证 模块升级后刷新 OA 或重新进入开发环境管理以加载新版 H5。初始化只读取数据,不会创建、启停或销毁云资源。 源文件:examples/cloud-admin/web/src/requestScheduler.js、api.js、useInstanceStream.js。Node 回归测试模拟超过 250ms 的互斥服务,覆盖启动请求排序、合并、读取重试、队列上限/过期、写操作不自动重试及原请求号保留。Go 测试覆盖权限、连接器白名单和写审计;正式候选包仍须通过隔离模拟及审批。线上验收只读配置、实例和转发,不运行真实云写操作。