From 8f35bf5b158d525445328366196fb50d115a55b0 Mon Sep 17 00:00:00 2001 From: Zhengchen Tao Date: Sat, 16 May 2026 16:53:18 +0800 Subject: [PATCH] fix(http): set CircuitBreaker.SamplingDuration to 60s 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. --- Program.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Program.cs b/Program.cs index 9610bf1..da95023 100644 --- a/Program.cs +++ b/Program.cs @@ -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); }); // ─── 业务服务 ──────────────────────────────────────────────