Files
crawler-plugin/backend-java/src/main/java/com/nanri/aiimage/config/ZiniaoHttpConfigResolver.java
T
huangzd1997 ec23c0d77c task-170: 紫鸟客户端配置接入(ZiniaoHttpConfigResolver 超时/重试读取,read 模块级现有配置优先、命名空间兜底)+ 8 条测试
- resolver 提供 connect/read/call/maxRetries/baseRetryDelay 访问面,不改动 ZiniaoClientImpl 调用点
- read 优先取 aiimage.ziniao.read-timeout-seconds(生产默认 15s,与 requestFactory(15000) 现状一致),未配置回退 aiimage.http-client.*
- 仅新增类与测试,零生产行为变化
2026-09-04 23:07:58 +08:00

51 lines
1.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.nanri.aiimage.config;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
/**
* 紫鸟客户端统一配置解析(task-170)。
*
* 真实基线(已核实):连接超时来自共享 HttpClientHttpClientPool 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();
}
}