Skip to content

fix(flow): 放宽控制面请求超时上限至 30 秒 - #196

Open
liwei9745 wants to merge 1 commit into
TheSmallHanCat:mainfrom
liwei9745:fix/control-plane-timeout
Open

liwei9745 wants to merge 1 commit into
TheSmallHanCat:mainfrom
liwei9745:fix/control-plane-timeout

Conversation

@liwei9745

Copy link
Copy Markdown

背景

_get_control_plane_timeout() 用于控制面轻量请求,当前实现把超时上限固定在 10 秒:

return max(5, min(int(self.timeout or 0) or 120, 10))

覆盖的调用包括:

  • st_to_at()(ST → AT 认证)
  • create_project() / 项目列表与详情查询
  • 媒体信息查询(media.getMediaUrlRedirect 等)
  • _get_control_plane_timeout() 直接作为默认值的若干 Flow 前端 RPC

在经代理访问 Flow 的环境中,这些请求偶发超过 10 秒(TLS 握手 + 代理转发 + Flow 控制面排队),会直接把生成前置步骤判为失败;而实际请求往往在 10~20 秒内就能返回。

改动

-        return max(5, min(int(self.timeout or 0) or 120, 10))
+        return max(5, min(int(self.timeout or 0) or 120, 30))
  • 上限由 10 秒放宽到 30 秒;
  • 仍受 config.flow_timeout 封顶,并保留下限 5 秒,不会无限等待;
  • 只影响控制面请求,不改变 _get_video_submit_timeout() 等生成链路的独立超时策略。

权衡

  • 正常情况下无行为变化(请求成功即返回);
  • 网络真正不可用时,单次失败的最坏等待从 10 秒变为 30 秒。考虑到生成链路本身已有 120~1500 秒级别的超时,这点等待可以接受,换来的是代理抖动时更少的误失败。

验证

  • import src.services.flow_client 正常;
  • 改动为单行常量调整,本地实例已运行该取值,控制面请求与图片生成正常。

说明

与 #195(reCAPTCHA 取码修复)相互独立,可单独合并。

_get_control_plane_timeout() 把控制面请求(ST→AT、项目创建/查询、媒体信息等)
的超时上限固定在 10 秒,对经代理访问 Flow 的链路偏紧,网络抖动时容易在
生成前置阶段直接失败。

放宽到 30 秒,仍受 config.flow_timeout 与下限 5 秒约束,不会无限等待。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant