c# 弹性和瞬态故障处理库Polly
关于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相关推荐
- 弹性和瞬态故障处理库Polly之重试策略
弹性和瞬态故障处理库Polly 源码及参考见文章底部 Nuget中Polly库的引用: Install-Package Polly 以下策略调用的方法: 详细代码见 public static int ...
- c# 弹性和瞬态故障处理库Polly 学习
关于Polly Polly是一个基于.NET的弹性及瞬态故障处理库,允许开发人员以顺畅及线程安全的方式执行重试(Retry).断路(Circuit Breaker).超时(Timeout). 隔离(B ...
- 弹性和瞬态故障处理库Polly介绍
前言 本节我们来介绍一款强大的库Polly,Polly是一种.NET弹性和瞬态故障处理库,允许我们以非常顺畅和线程安全的方式来执诸如行重试,断路,超时,故障恢复等策略. Polly针对对.NET 4. ...
- 已被.NET基金会认可的弹性和瞬态故障处理库Polly介绍
前言 本节我们来介绍一款强大的库Polly,Polly是一种.NET弹性和瞬态故障处理库,允许我们以非常顺畅和线程安全的方式来执诸如行重试,断路,超时,故障恢复等策略. Polly针对对.NET 4. ...
- 开源服务容错处理库Polly使用文档
在进入SOA之后,我们的代码从本地方法调用变成了跨机器的通信.任何一个新技术的引入都会为我们解决特定的问题,都会带来一些新的问题.比如网络故障.依赖服务崩溃.超时.服务器内存与CPU等其它问题.正是因 ...
- ASP VNext 开源服务容错处理库Polly
背景 Polly是一个.NET弹性和瞬态故障处理库,允许开发人员以流畅和线程安全的方式表达诸如重试,断路器,超时,隔离头和回退之类的策略. Polly面向.NET Standard 1.1(覆盖范围: ...
- 图像配准-弹性变换利用Python库-PyElastix快速实现弹性配准
b站视频地址: 一. 环境准备 系统选择:Windows.mac.Linux均可 准备步骤: 安装Pyelastix库 pip install pyelastix or conda install p ...
- Polly组件对微服务场景的价值
Polly是一个开源框架,在github上可以找到,被善友大哥收录,也是.App vNext的一员! App vNext:https://github.com/App-vNext GitHub:htt ...
- NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统
前言 当一个APM或一个日志中心实际部署在生产环境中时,是有点力不从心的. 比如如下场景分析的问题: 从APM上说,知道某个节点出现异常,或延迟过过高,却不能及时知道日志反馈情况,总不可能去相应的节点 ...
最新文章
- 增强现实技术的9个最新应用趋势
- 辗转相除法求最大公约数,非goto
- python常用模块大全总结-Python 常用模块大全(整理)
- 如何高效地去调试UGUI的源码
- NTU -SCSE-orientation
- 杭电oj2072,2091字符串java实现
- Java的值传递和引用值传递的区别
- TypeScript里一些特殊的类型
- Maven中安装本地Jar包到仓库中或将本地jar包上传
- 关于Unity中的帧动画组件的编写
- 小程序点餐系统,外卖点餐系统源码
- CPU纯软件全虚拟化技术
- 麒麟子Javascript游戏编程零基础教程大纲
- 【知识图谱】本周文献阅读笔记(3)——周二 2023.1.10:英文)知识图谱补全研究综述 + 网络安全知识图谱研究综述 + 知识图谱嵌入模型中的损失函数 + 图神经网络应用于知识图谱推理的研究综述
- 叠加dgv中相同的行信息
- 浏览器端转盘抽奖策略实现
- 采用jacob读取并在网页中显示ppt、word、excel
- oneDrive 无法连接
- 中国新一代人工智能治理原则发布 | 发展负责任的人工智能
- “别具一格”的vue双向数据绑定原理
热门文章
- Acitivty生命周期
- Eclipse 导出
- 【视频】CCNA——telnet和SSH的配置
- linux批量杀进程_Linux下批量杀JAVA进程
- 【转载】负数的二进制
- [bzoj1050 HAOI2006] 旅行comf (kruskal)
- maven项目的目录结构
- java反射--Class类
- Codeforces Round #323 (Div. 1) B. Once Again... 暴力
- C#正则表达式编程(四)转致周公