Polly公共处理 -重试(Retry)

Posted 龙码精神~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Polly公共处理 -重试(Retry)相关的知识,希望对你有一定的参考价值。

封装处理下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)的主要内容,如果未能解决你的问题,请参考以下文章

Polly 熔断策略

.Net Core with 微服务 - Polly 服务降级熔断

asp.net core 使用HttpClientFactory Polly实现熔断降级

Polly

如何为每个 url 使用 Polly 和 IHttpClientFactory

熔断降级(Polly)