zoukankan      html  css  js  c++  java
  • 封装一个错误重试类



    /// <summary>
    /// 错误重试处理
    /// </summary>
    public static class RetryHandle
    {
    /// <summary>
    /// 重试
    /// </summary>
    /// <param name="count">重试次数</param>
    /// <param name="actionFunc">执行方法</param>
    public static T Retry<T>(int count, Func<int,RetryMessage<T>> actionFunc = null)
      {
           if (actionFunc == nullreturn default(T);
           var times = 1;
           RetryMessage<T> ret;
           do
             {
               ret = actionFunc(times);
               if (ret.Success) break;
                times++;
             } while (times <= count);
           return ret.Data;
       }


     /// <summary>
            /// 隔一段时间重试调用一次
            /// </summary>
            /// <param name="sleepDurations"></param>
            /// <param name="action"></param>
            public static void WaitAndRetry(IEnumerable<TimeSpan> sleepDurations, Action<TimeSpanint> action)
            {
                var intento = 1;
                sleepDurations.Each(timeSpan =>
                {
                    System.Threading.Thread.Sleep(timeSpan.Seconds * 1000);
                    action(timeSpan, intento);
                    intento++;
                });
            }  
    }
    /// <summary>
    /// 
    /// </summary>
    public class RetryMessage<T>
    {
            /// <summary>
            /// 
            /// </summary> 
            public bool Success { setget; }
            /// <summary>
            /// 
            /// </summary>
            public T Data { setget; }
    }


    //调用示例 
    var ret = RetryHandle.Retry(3, () =>
     {
       var list = GetList();
       return new RetryMessage<List<HO_PESbkv>>
        {
         Success = list != null && list.Any(),
         Data = list
        };
    }); 
  • 相关阅读:
    WebService 入门程序(一)
    WinXP系统服务详细列表
    windows下使用openssl的一种方法
    如何搭建Visual Studio的内核编程开发环境
    在CentOS下源码安装 Xen并搭建Windows虚拟机
    微信聊天记录查看器(程序+源码)
    实现了一个简单的key-value存储系统
    TFS二次开发系列:五、工作项查询
    匿名类型是不是强类型?
    近期微博吐槽言论存档,涉及“性能优化”、C++陋习等
  • 原文地址:https://www.cnblogs.com/qingyunoo/p/7615360.html
Copyright © 2011-2022 走看看