Polly 是一个 .NET 库,用于处理应用程序的弹性和容错,尤其是在与外部服务交互时。
它提供了各种策略(如重试、断路器、超时、降级等),帮助我们处理请求失败的情况,以提高应用程序的可靠性。
一、使用 Polly 的基本步骤:
1、安装 Polly: 通过 NuGet 包管理器安装 Polly 和相关的扩展。可以在项目中运行以下命令:
dotnet add package Polly
dotnet add package Microsoft.Extensions.Http.Polly
2、配置 HttpClient: 在 Startup.cs 的 ConfigureServices 方法中配置 HttpClient,并使用 Polly 策略。
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpClient("MyHttpClient")
.AddPolicyHandler(Policy
.Handle<HttpRequestException>()
.RetryAsync(3)); // 重试策略,最多重试3次
}
3、使用 HttpClient: 在我们的服务或控制器中,注入并使用配置好的 HttpClient。
public class MyService
{
private readonly HttpClient _httpClient;
public MyService(IHttpClientFactory httpClientFactory)
{
_httpClient = httpClientFactory.CreateClient("MyHttpClient");
}
public async Task<string> GetDataAsync(string url)
{
var response = await _httpClient.GetAsync(url);
response.EnsureSuccessStatusCode();
ret