From 379a5c1bd67be46f7428c8257d97ed9a1d48fb83 Mon Sep 17 00:00:00 2001 From: panchengyong Date: Mon, 9 Mar 2026 14:02:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20Coze=20=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E6=B5=81=E8=B0=83=E7=94=A8=20SocketTimeoutException?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CozeAPI.Builder 默认超时仅 5 秒,导致营养分析等耗时工作流请求超时。 将 YAML 中已配置的 connect-timeout(30s) 和 read-timeout(60s) 正确传入 CozeAPI 客户端。 Co-Authored-By: Claude Opus 4.6 --- .../java/com/zbkj/common/config/CozeConfig.java | 16 ++++++++++++++++ .../service/impl/tool/ToolCozeServiceImpl.java | 6 ++++++ 2 files changed, 22 insertions(+) diff --git a/msh_crmeb_22/crmeb-common/src/main/java/com/zbkj/common/config/CozeConfig.java b/msh_crmeb_22/crmeb-common/src/main/java/com/zbkj/common/config/CozeConfig.java index 2a65ed8..0fbb3d0 100644 --- a/msh_crmeb_22/crmeb-common/src/main/java/com/zbkj/common/config/CozeConfig.java +++ b/msh_crmeb_22/crmeb-common/src/main/java/com/zbkj/common/config/CozeConfig.java @@ -43,6 +43,12 @@ public class CozeConfig { @Value("${coze.api.public-key-id:}") private String publicKeyId; + @Value("${coze.api.connect-timeout:30000}") + private int connectTimeout; + + @Value("${coze.api.read-timeout:60000}") + private int readTimeout; + /** * 默认 Bot ID - 食谱计算器 Bot */ @@ -75,6 +81,8 @@ public class CozeConfig { return new CozeAPI.Builder() .baseURL(baseUrl) .auth(new TokenAuth(token)) + .connectTimeout(connectTimeout) + .readTimeout(readTimeout) .build(); } @@ -148,4 +156,12 @@ public class CozeConfig { public String getDefaultUserId() { return defaultUserId; } + + public int getConnectTimeout() { + return connectTimeout; + } + + public int getReadTimeout() { + return readTimeout; + } } diff --git a/msh_crmeb_22/crmeb-service/src/main/java/com/zbkj/service/service/impl/tool/ToolCozeServiceImpl.java b/msh_crmeb_22/crmeb-service/src/main/java/com/zbkj/service/service/impl/tool/ToolCozeServiceImpl.java index b0fec36..df17926 100644 --- a/msh_crmeb_22/crmeb-service/src/main/java/com/zbkj/service/service/impl/tool/ToolCozeServiceImpl.java +++ b/msh_crmeb_22/crmeb-service/src/main/java/com/zbkj/service/service/impl/tool/ToolCozeServiceImpl.java @@ -19,6 +19,7 @@ import com.zbkj.common.request.coze.CozeListMessageRequest; import com.zbkj.common.request.coze.CozeRetrieveChatRequest; import com.zbkj.common.request.coze.CozeWorkflowRequest; import com.zbkj.common.request.coze.CozeWorkflowResumeRequest; +import com.zbkj.common.config.CozeConfig; import com.zbkj.common.response.CozeBaseResponse; import com.zbkj.common.utils.SseEmitterUtil; import com.zbkj.service.service.tool.ToolCozeService; @@ -55,6 +56,9 @@ public class ToolCozeServiceImpl implements ToolCozeService { @Autowired(required = false) private JWTOAuthClient jwtOAuthClient; + @Autowired + private CozeConfig cozeConfig; + @Value("${coze.api.base-url:https://api.coze.cn}") private String baseUrl; @@ -74,6 +78,8 @@ public class ToolCozeServiceImpl implements ToolCozeService { return new CozeAPI.Builder() .baseURL(baseUrl) .auth(new TokenAuth(accessToken)) + .connectTimeout(cozeConfig.getConnectTimeout()) + .readTimeout(cozeConfig.getReadTimeout()) .build(); } throw new RuntimeException("Coze API not configured properly. Please configure 'coze.api.token' (PAT) or JWT auth.");