首页 > 其他 > 详细

Polly公共处理 -重试(Retry)

时间:2018-05-18 17:05:32      阅读:183      评论:0      收藏:0      [点我收藏+]

封装处理下Polly重试

private ILogger<PollyHelper> _logger;
        /// <summary>
        /// 
        /// </summary>
        /// <param name="logger"></param>
        public PollyHelper(ILogger<PollyHelper> logger)
        {
            _logger = logger;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="exception"></param>
        /// <param name="action"></param>
        public void PollyRetry<T>(Action action) where T : Exception
        {
            var policy = Policy
               .Handle<T>()
               .Retry(2, (ex, count) =>
               {
                   _logger.LogError("执行失败!重试次数 {0}\r\n异常来自 {1}", count, ex.GetType().Name);
               });

            policy.Execute(action);
        }

调用重试

 _pollyHelper.PollyRetry<UserServicesDomainException>(() =>
            {
                throw new UserServicesDomainException("斯大林附近打开了房间");
            });

 执行结果如下

技术分享图片

 

Polly公共处理 -重试(Retry)

原文:https://www.cnblogs.com/liyouming/p/9056965.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!