fix(http): set CircuitBreaker.SamplingDuration to 60s
Build Docker Image / build (push) Successful in 10m45s
Build Docker Image / deploy (push) Failing after 53s

Polly StandardResilienceHandler validates SamplingDuration >= 2 * AttemptTimeout
at startup. Default SamplingDuration is 30s and our AttemptTimeout is 30s, so
the container failed to boot with OptionsValidationException.

Set SamplingDuration explicitly to 60s while keeping AttemptTimeout at 30s.
This commit is contained in:
2026-05-16 16:53:18 +08:00
parent ab987986b4
commit 8f35bf5b15
+2
View File
@@ -54,6 +54,8 @@ builder.Services.AddHttpClient("gitea", client =>
// 仅对 5xx / 429 / 网络错误重试;4xx 由 ShouldHandle 默认配置自动跳过
options.TotalRequestTimeout.Timeout = TimeSpan.FromSeconds(90);
options.AttemptTimeout.Timeout = TimeSpan.FromSeconds(30);
// Polly 校验:SamplingDuration ≥ 2× AttemptTimeout,默认 30s 不达标
options.CircuitBreaker.SamplingDuration = TimeSpan.FromSeconds(60);
});
// ─── 业务服务 ──────────────────────────────────────────────