关于polly

polly文档中对自己介绍的原文是:

Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry,

Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner.

从这段话我们可以知道polly项目是一个基于.NET开发的用来处理瞬故障的库,我们可以借助这个库以线程安全的形式实现

重试、断路、超时、隔离和回退策略.

polly的使用

在Nuget中下载Polly安装包,安装成功即可使用

Install-Package Polly

异常重试是最常使用的一个策略,其功能是当我们执行的方法体发生异常时,可以按照我们指定的次数进行重试

1、指定需要处理的异常

可以指定捕获执行的任务的异常类型,若执行任务的异常类型满足指定异常,那么重试机制将会生效

var policy = Policy.Handle<Exception>()

2、指定重试次数和监控重试

指定整个执行过程中需要重试多少次,且可以监控每次的重试信息,比如重试次数  异常以及重试的上下文信息

.WaitAndRetryAsync(3, retryAttempt => TimeSpan.FromSeconds(2), (exception, retryCount) =>

3、指定执行的任务

指定执行的任务是整个异常重试的核心和监控对象,Execute支持多种重载.。

var result =   policy.ExecuteAsync(() => Test());
class Program{private static void Main(string[] args){//var policy = Policy.Handle<Exception>()//    .WaitAndRetryAsync(3, retryAttempt => TimeSpan.FromSeconds(2), (exception, retryCount) =>//    {//        NLogger.Error(exception.ToString()+"------"+ $"第{retryCount}次重试");//    });var policy = Policy.Handle<Exception>().RetryAsync(2, async (exception, retryCount) =>{Console.WriteLine("333333:" + exception.Message + "------" + $"第{retryCount}次重试");});var result =   policy.ExecuteAsync(() => Test());//string r = result.ToString();Console.WriteLine("444444:");Console.ReadKey();}private static async Task Test(){//try//{Convert.ToInt32("w");using (var httpClient = new HttpClient()){var response = httpClient.GetAsync("http://news.cnblogs.com/Category/GetCategoryList?bigCateId=11&loadType=0").Result;var  s=   await response.Content.ReadAsStringAsync();Console.WriteLine("111111:"+s);}//    return "url";//}//catch (Exception ex)//{//    throw new Exception();//    Console.WriteLine("222222:" + ex.Message);//    return null;//}// }}
}

c# 弹性和瞬态故障处理库Polly相关推荐

  1. 弹性和瞬态故障处理库Polly之重试策略

    弹性和瞬态故障处理库Polly 源码及参考见文章底部 Nuget中Polly库的引用: Install-Package Polly 以下策略调用的方法: 详细代码见 public static int ...

  2. c# 弹性和瞬态故障处理库Polly 学习

    关于Polly Polly是一个基于.NET的弹性及瞬态故障处理库,允许开发人员以顺畅及线程安全的方式执行重试(Retry).断路(Circuit Breaker).超时(Timeout). 隔离(B ...

  3. 弹性和瞬态故障处理库Polly介绍

    前言 本节我们来介绍一款强大的库Polly,Polly是一种.NET弹性和瞬态故障处理库,允许我们以非常顺畅和线程安全的方式来执诸如行重试,断路,超时,故障恢复等策略. Polly针对对.NET 4. ...

  4. 已被.NET基金会认可的弹性和瞬态故障处理库Polly介绍

    前言 本节我们来介绍一款强大的库Polly,Polly是一种.NET弹性和瞬态故障处理库,允许我们以非常顺畅和线程安全的方式来执诸如行重试,断路,超时,故障恢复等策略. Polly针对对.NET 4. ...

  5. 开源服务容错处理库Polly使用文档

    在进入SOA之后,我们的代码从本地方法调用变成了跨机器的通信.任何一个新技术的引入都会为我们解决特定的问题,都会带来一些新的问题.比如网络故障.依赖服务崩溃.超时.服务器内存与CPU等其它问题.正是因 ...

  6. ASP VNext 开源服务容错处理库Polly

    背景 Polly是一个.NET弹性和瞬态故障处理库,允许开发人员以流畅和线程安全的方式表达诸如重试,断路器,超时,隔离头和回退之类的策略. Polly面向.NET Standard 1.1(覆盖范围: ...

  7. 图像配准-弹性变换利用Python库-PyElastix快速实现弹性配准

    b站视频地址: 一. 环境准备 系统选择:Windows.mac.Linux均可 准备步骤: 安装Pyelastix库 pip install pyelastix or conda install p ...

  8. Polly组件对微服务场景的价值

    Polly是一个开源框架,在github上可以找到,被善友大哥收录,也是.App vNext的一员! App vNext:https://github.com/App-vNext GitHub:htt ...

  9. NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统

    前言 当一个APM或一个日志中心实际部署在生产环境中时,是有点力不从心的. 比如如下场景分析的问题: 从APM上说,知道某个节点出现异常,或延迟过过高,却不能及时知道日志反馈情况,总不可能去相应的节点 ...

最新文章

  1. 增强现实技术的9个最新应用趋势
  2. 辗转相除法求最大公约数,非goto
  3. python常用模块大全总结-Python 常用模块大全(整理)
  4. 如何高效地去调试UGUI的源码
  5. NTU -SCSE-orientation
  6. 杭电oj2072,2091字符串java实现
  7. Java的值传递和引用值传递的区别
  8. TypeScript里一些特殊的类型
  9. Maven中安装本地Jar包到仓库中或将本地jar包上传
  10. 关于Unity中的帧动画组件的编写
  11. 小程序点餐系统,外卖点餐系统源码
  12. CPU纯软件全虚拟化技术
  13. 麒麟子Javascript游戏编程零基础教程大纲
  14. 【知识图谱】本周文献阅读笔记(3)——周二 2023.1.10:英文)知识图谱补全研究综述 + 网络安全知识图谱研究综述 + 知识图谱嵌入模型中的损失函数 + 图神经网络应用于知识图谱推理的研究综述
  15. 叠加dgv中相同的行信息
  16. 浏览器端转盘抽奖策略实现
  17. 采用jacob读取并在网页中显示ppt、word、excel
  18. oneDrive 无法连接
  19. 中国新一代人工智能治理原则发布 | 发展负责任的人工智能
  20. “别具一格”的vue双向数据绑定原理

热门文章

  1. Acitivty生命周期
  2. Eclipse 导出
  3. 【视频】CCNA——telnet和SSH的配置
  4. linux批量杀进程_Linux下批量杀JAVA进程
  5. 【转载】负数的二进制
  6. [bzoj1050 HAOI2006] 旅行comf (kruskal)
  7. maven项目的目录结构
  8. java反射--Class类
  9. Codeforces Round #323 (Div. 1) B. Once Again... 暴力
  10. C#正则表达式编程(四)转致周公