using System; using Polly; namespace WMS.Util { public static class PolicyHelper { #region 执行策略 /// /// 重试次数策略 /// /// /// 错误处理 /// public static Policy GetRetryTimesPolicy(int time, Action exAction = null) { if (time <= 0) return default(Policy); Policy policy = null; if (exAction == null) { policy = Policy .Handle() .Retry(time); } else { policy = Policy .Handle() .Retry(time, (ex, count) => { exAction(ex); }); } return policy; } /// /// 超时策略 /// /// /// public static Policy GetTimeOutPolicy(int milliseconds) { if (milliseconds <= 0) return default(Policy); var policy = Policy .Timeout(TimeSpan.FromMilliseconds(milliseconds)); return policy; } /// /// 回退策略 /// /// /// public static Policy GetFallBackPolicy(Action method) { if (method==null) return default(Policy); var policy=Policy .Handle() .Fallback(method); return policy; } #endregion } }