当前位置: 首页 > news >正文

外贸免费建设网站制作深圳专业商城网站制作

外贸免费建设网站制作,深圳专业商城网站制作,怎样用织梦建设网站,专做药材的网站有哪些HttpClientFactory 结合 Polly 轻松实现重试机制Intro我们的服务里有一个 API 会去调用第三方的接口#xff0c;设置了超时时间#xff0c;最近偶尔会发生超时的情况#xff0c;微软在提供 HttpClientFactory 的同时#xff0c;也提供了一个基于 Polly 的一个扩展#xff… HttpClientFactory 结合 Polly 轻松实现重试机制Intro我们的服务里有一个 API 会去调用第三方的接口设置了超时时间最近偶尔会发生超时的情况微软在提供 HttpClientFactory 的同时也提供了一个基于 Polly 的一个扩展我们可以借助它轻松地实现重试熔断等行为。Sample使用 Polly 扩展需要引用 nuget 包 Microsoft.Extensions.Http.Polly使用示例services.AddHttpClient(ServiceConst.IterableHttpClientName, x  {x.Timeout  new TimeSpan(0, 0, 3); }).AddTransientHttpErrorPolicy(builder {return builder.OrTaskCanceledException().OrOperationCanceledException().OrTimeoutException().OrResult(res  res.StatusCode  HttpStatusCode.TooManyRequests || (int)res.StatusCode  500).RetryAsync(5);}) 通过 AddTransientHttpErrorPolicy 扩展方法来注册一个 Polly 的 policy具体可以通过 policyBuilder 委托来定制自己要处理的情况和 policy 行为支持方式有很多可以简单的指定重试也可以指定 WaitANdRetryAsync 等待一段时间后重试可以重试一次也可以一直重试下去非常的灵活可以根据自己的业务场景进行定制化配置这里的示例直接是用了简单的重试机制单元测试下面提供了一个测试重试的单元测试也可以作为使用示例的一个参考 [Fact] public async Task TaskCanceledException() {var ticks  new ConcurrentBaglong();var retryLimit  5;var services  new ServiceCollection();services.AddHttpClient(test, x {x.Timeout  TimeSpan.FromSeconds(1);}).AddTransientHttpErrorPolicy(builder {return builder.OrTaskCanceledException().OrOperationCanceledException().OrTimeoutException().OrResult(res res.StatusCode  HttpStatusCode.TooManyRequests || (int)res.StatusCode  500).RetryAsync(retryLimit);}).AddHttpMessageHandler(()  new MockHttpHandler(request {ticks.Add(DateTime.UtcNow.Ticks);throw new TaskCanceledException();}));await using var provider  services.BuildServiceProvider();try{using var response  await provider.GetRequiredServiceIHttpClientFactory().CreateClient(test).GetAsync(api/test);}catch (Exception e){Assert.True(e is OperationCanceledException);}Assert.Equal(retryLimit  1, ticks.Count); }private class MockHttpHandler : DelegatingHandler {private readonly FuncHttpRequestMessage, HttpResponseMessage _getResponseFunc;public MockHttpHandler(FuncHttpRequestMessage, HttpResponseMessage getResponseFunc){_getResponseFunc  getResponseFunc;}protected override TaskHttpResponseMessage SendAsync(HttpRequestMessage request, CancellationToken cancellationToken){return Task.FromResult(_getResponseFunc(request));} } More除了 AddTransientHttpErrorPolicy 之外Polly 扩展还支持 AddPolicyHandler/AddPolicyHandlerFromRegistry 扩展方法有兴趣的可以自己探索一下哈~~Referencehttps://www.nuget.org/packages/Microsoft.Extensions.Http.Pollyhttps://github.com/dotnet/aspnetcore/tree/master/src/HttpClientFactory/Polly/src
http://wiki.neutronadmin.com/news/283188/

相关文章:

  • 上饶网站开发宁波制作网站哪个好
  • 网站建设 生产外贸网站平台都有哪些平台
  • 中国住房城乡建设厅网站自动更新的网站建设
  • 怎样做自己的 优惠卷网站口碑好的龙岗网站建设
  • 毕业设计网站开发要做什么广告投放运营主要做什么
  • 君隆网站建设网站开发技术要学什么软件
  • 乌兰察布做网站淮北建设网站
  • wordpress 文章延时加载福州网站建设优化
  • 盐田网站建设做中考试卷的网站
  • 网站设计维护合同安徽教育机构网站建设
  • 做网站后台的时候误删了数据库的表做网站的公司如何推广
  • 哪个医学网站大夫可以做离线题重庆哪里可以做网站的
  • 丹东建设网官方网站wordpress加目录
  • 生产型或服务型企业网站有哪些网页qq登录网址
  • 企业自建网站营销wordpress access
  • 做网站 人员重庆建设厅官网
  • 网站如何进行备案桂林网站建设哪家好
  • 做网站外包需要提供什么thymeleaf做网站 seo
  • 网站建设与维护蒋勇从电子商务网站建设用什么软件
  • 白云区网站建设深圳做响应式网站设计
  • 物流网站建设规划总结网贷代理平台
  • 佛山免费建站找哪家零基础怎么当程序员
  • 鄂州做网站多少钱重庆工商学校官网
  • 江苏哪家做网站排名比较好wordpress插件过多不好
  • 网站开发方向的工作深圳网站建设信科网络
  • 找人做网站要准备什么软件毕业设计代做网站多少钱
  • 别人盗用我的网站备案号怎么办柳州企业做网站
  • 企业备案网站可以做论坛吗做名片赞机器人电脑网站是多少钱
  • 企业网站建设需要做哪些工作品牌建设 宣传
  • 网站注册可以免费吗网站建设名片设计