You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为AspNetCore.HealthChecks.Uris健康检查添加Polly重试策略?

解决AspNetCore.Diagnostics.HealthChecks中AddUrlGroup集成Polly的问题

你可以通过两种方式在使用AddUrlGroup时集成Polly策略,无需纠结如何直接获取IHttpClientBuilder:

  • 方式一:利用返回IHttpClientBuilder的AddUrlGroup重载
    部分AddUrlGroup重载会直接返回对应的IHttpClientBuilder实例,你可以链式调用AddPolicyHandler添加Polly策略:

    // 注册健康检查并获取HttpClientBuilder
    var httpClientBuilder = healthCheckBuilder.AddUrlGroup(new Uri("https://example.com/health"), name: "example-service");
    
    // 添加Polly重试策略示例
    httpClientBuilder.AddPolicyHandler(Policy
        .Handle<HttpRequestException>()
        .WaitAndRetryAsync(3, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))));
    
  • 方式二:先注册带Polly策略的命名客户端
    先通过AddHttpClient注册命名客户端并配置Polly策略,再在AddUrlGroup中指定该客户端名称:

    // 注册带熔断策略的命名客户端
    services.AddHttpClient("example-service")
        .AddPolicyHandler(Policy
            .Handle<HttpRequestException>()
            .CircuitBreakerAsync(5, TimeSpan.FromSeconds(30)));
    
    // 健康检查中使用该命名客户端
    healthCheckBuilder.AddUrlGroup(new Uri("https://example.com/health"), name: "example-service");
    

这两种方式都能轻松实现健康检查请求的Polly策略集成,适配不同的代码编写习惯。

内容的提问来源于stack exchange,提问作者handles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:04:50