ec23c0d77c
- resolver 提供 connect/read/call/maxRetries/baseRetryDelay 访问面,不改动 ZiniaoClientImpl 调用点 - read 优先取 aiimage.ziniao.read-timeout-seconds(生产默认 15s,与 requestFactory(15000) 现状一致),未配置回退 aiimage.http-client.* - 仅新增类与测试,零生产行为变化
51 lines
1.9 KiB
Java
51 lines
1.9 KiB
Java
package com.nanri.aiimage.config;
|
||
|
||
import lombok.RequiredArgsConstructor;
|
||
import org.springframework.stereotype.Component;
|
||
|
||
/**
|
||
* 紫鸟客户端统一配置解析(task-170)。
|
||
*
|
||
* 真实基线(已核实):连接超时来自共享 HttpClient(HttpClientPool connect=10s,
|
||
* 不读 aiimage.ziniao.connect 字段);读取超时由 ZiniaoClientImpl 取
|
||
* aiimage.ziniao.read-timeout-seconds*1000(生产默认 15s)经 requestFactory 生效;
|
||
* 当前无 call timeout / 无重试。
|
||
*
|
||
* 语义:read 优先取模块级现有配置(保证接入切点时行为不变),未配置时回退命名空间
|
||
* aiimage.http-client.*;connect/call/retry 取命名空间(未来由命名空间统一治理)。
|
||
* 仅提供稳定访问面,不改动 ZiniaoClientImpl 调用点。
|
||
*/
|
||
@Component
|
||
@RequiredArgsConstructor
|
||
public class ZiniaoHttpConfigResolver {
|
||
|
||
private final HttpClientProperties httpClientProperties;
|
||
private final ZiniaoProperties ziniaoProperties;
|
||
|
||
/** 连接超时:共享 HttpClient 决定,命名空间默认 10s 与 HttpClientPool 现状一致。 */
|
||
public long connectTimeoutMillis() {
|
||
return httpClientProperties.effectiveConnectTimeoutMillis();
|
||
}
|
||
|
||
/** 读取超时:模块级秒数优先(现状 15s);未配置时回退命名空间。 */
|
||
public long readTimeoutMillis() {
|
||
int moduleSeconds = ziniaoProperties.getReadTimeoutSeconds();
|
||
if (moduleSeconds > 0) {
|
||
return moduleSeconds * 1_000L;
|
||
}
|
||
return httpClientProperties.effectiveReadTimeoutMillis();
|
||
}
|
||
|
||
public long callTimeoutMillis() {
|
||
return httpClientProperties.effectiveCallTimeoutMillis();
|
||
}
|
||
|
||
public int maxRetries() {
|
||
return httpClientProperties.effectiveMaxRetries();
|
||
}
|
||
|
||
public long baseRetryDelayMillis() {
|
||
return httpClientProperties.getBaseRetryDelayMillis();
|
||
}
|
||
}
|