ASP.NET Core 异常重试组件 Polly

Polly 是一种 .NET 弹性和瞬态故障处理库,允许开发人员以流畅和线程安全的方式表达策略,如重试,断路器,超时,隔离隔离和备用,Polly 适用于 .NET 4.0,.NET 4.5 和 .NET Standard 1.1。

安装 Nuget 程序包:

Install-Package Polly

简单使用:

// Execute an action
var policy = Policy
              .Handle<Exception>()
              .RetryAsync(10, async (exception, retryCount) =>
              {
                  await LogAsync(exception, $"第{retryCount}次重试");
              });

await policy.ExecuteAsync(async () => await DoSomething());

//另外一种使用方式:
var tokenResponse = await Policy
        .Handle<Exception>()
        .OrResult<TokenResponse>(x => x.IsError)
        .RetryAsync(5) //如果使用Retry,会报错误:Please use asynchronous-defined policies when calling asynchronous ExecuteAsync (and similar) methods
        .ExecuteAsync(async () =>
        {
            var client = new DiscoveryClient(_appSettings.IssuerUri);
            client.Policy.RequireHttps = false;
            var disco = await client.GetAsync();
            var tokenClient = new TokenClient(disco.TokenEndpoint, clientId, clientSecret);
            return await tokenClient.RequestRefreshTokenAsync(refreshToken);
        });

本文转自田园里的蟋蟀博客园博客,原文链接:http://www.cnblogs.com/xishuai/p/asp-net-core-polly.html,如需转载请自行联系原作者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值