HttpClientFactory 结合 Polly 轻松实现重试机制
HttpClientFactory 结合 Polly 轻松实现重试机制
Intro
我们的服务里有一个 API 会去调用第三方的接口,设置了超时时间,最近偶尔会发生超时的情况,微软在提供 HttpClientFactory 的同时,也提供了一个基于 Polly 的一个扩展,我们可以借助它轻松地实现重试,熔断等行为。
Sample
使用 Polly 扩展需要引用 nuget 包 :Microsoft.Extensions.Http.Polly
使用示例:
通过 AddTransientHttpErrorPolicy 扩展方法来注册一个 Polly 的 policy,具体可以通过 policyBuilder 委托来定制自己要处理的情况和 policy 行为,支持方式有很多可以简单的指定重试,也可以指定 WaitANdRetryAsync 等待一段时间后重试,可以重试一次也可以一直重试下去,非常的灵活,可以根据自己的业务场景进行定制化配置,这里的示例直接是用了简单的重试机制
单元测试
下面提供了一个测试重试的单元测试,也可以作为使用示例的一个参考:
