public IntervalRetryPolicy(IRetryExceptionFilter filter, params TimeSpan[] intervals) { if (intervals == null) throw new ArgumentNullException("intervals"); if (intervals.Length == 0) throw new ArgumentOutOfRangeException("intervals", "At least one interval must be specified"); _filter = filter; _intervals = intervals; }
public IntervalRetryPolicy(IRetryExceptionFilter filter, params int[] intervals) { if (intervals == null) throw new ArgumentNullException("intervals"); if (intervals.Length == 0) throw new ArgumentOutOfRangeException("intervals", "At least one interval must be specified"); _filter = filter; _intervals = intervals.Select(x => TimeSpan.FromMilliseconds(x)).ToArray(); }
public ExponentialIntervalRetryPolicy(IRetryExceptionFilter filter, int retryLimit, TimeSpan minInterval, TimeSpan maxInterval, TimeSpan intervalDelta) { _filter = filter; _retryLimit = retryLimit; _minInterval = (int)minInterval.TotalMilliseconds; _maxInterval = (int)maxInterval.TotalMilliseconds; _lowInterval = (int)(intervalDelta.TotalMilliseconds * 0.8); _highInterval = (int)(intervalDelta.TotalMilliseconds * 1.2); }
public IntervalRetryPolicy(IRetryExceptionFilter filter, params int[] intervals) { if (intervals == null) { throw new ArgumentNullException("intervals"); } if (intervals.Length == 0) { throw new ArgumentOutOfRangeException("intervals", "At least one interval must be specified"); } _filter = filter; _intervals = intervals.Select(x => TimeSpan.FromMilliseconds(x)).ToArray(); }
public IntervalRetryPolicy(IRetryExceptionFilter filter, params TimeSpan[] intervals) { if (intervals == null) { throw new ArgumentNullException("intervals"); } if (intervals.Length == 0) { throw new ArgumentOutOfRangeException("intervals", "At least one interval must be specified"); } _filter = filter; _intervals = intervals; }
public IncrementalRetryPolicy(IRetryExceptionFilter filter, int retryLimit, TimeSpan initialInterval, TimeSpan intervalIncrement) { if (initialInterval < TimeSpan.Zero) { throw new ArgumentOutOfRangeException("initialInterval", "The initialInterval must be non-negative or -1, and it must be less than or equal to TimeSpan.MaxValue."); } if (intervalIncrement < TimeSpan.Zero) { throw new ArgumentOutOfRangeException("intervalIncrement", "The intervalIncrement must be non-negative or -1, and it must be less than or equal to TimeSpan.MaxValue."); } _filter = filter; _intervals = GetIntervals(retryLimit, initialInterval, intervalIncrement).ToArray(); }
public ImmediateRetryPolicy(IRetryExceptionFilter filter, int retryLimit) { _filter = filter; _intervals = Enumerable.Repeat(TimeSpan.Zero, retryLimit).ToArray(); }
/// <summary> /// Create an interval retry policy with the specified intervals. The retry count equals /// the number of intervals provided /// </summary> /// <param name="filter"></param> /// <param name="intervals">The intervals before each subsequent retry attempt</param> /// <returns></returns> public static IRetryPolicy Intervals(this IRetryExceptionFilter filter, params int[] intervals) { return(new IntervalRetryPolicy(filter, intervals)); }
/// <summary> /// Create an immediate retry policy with the specified number of retries, with no /// delay between attempts. /// </summary> /// <param name="filter"></param> /// <param name="retryLimit">The number of retries to attempt</param> /// <returns></returns> public static IRetryPolicy Immediate(this IRetryExceptionFilter filter, int retryLimit) { return(new ImmediateRetryPolicy(filter, retryLimit)); }
/// <summary> /// Create an incremental retry policy with the specified number of retry attempts with an incrementing /// interval between retries /// </summary> /// <param name="filter"></param> /// <param name="retryLimit">The number of retry attempts</param> /// <param name="initialInterval">The initial retry interval</param> /// <param name="intervalIncrement">The interval to add to the retry interval with each subsequent retry</param> /// <returns></returns> public static IRetryPolicy Incremental(this IRetryExceptionFilter filter, int retryLimit, TimeSpan initialInterval, TimeSpan intervalIncrement) { return(new IncrementalRetryPolicy(filter, retryLimit, initialInterval, intervalIncrement)); }
/// <summary> /// Create an exponential retry policy with the specified number of retries at exponential /// intervals /// </summary> /// <param name="filter"></param> /// <param name="retryLimit"></param> /// <param name="minInterval"></param> /// <param name="maxInterval"></param> /// <param name="intervalDelta"></param> /// <returns></returns> public static IRetryPolicy Exponential(this IRetryExceptionFilter filter, int retryLimit, TimeSpan minInterval, TimeSpan maxInterval, TimeSpan intervalDelta) { return(new ExponentialIntervalRetryPolicy(filter, retryLimit, minInterval, maxInterval, intervalDelta)); }
/// <summary> /// Create an interval retry policy with the specified number of retries at a fixed interval /// </summary> /// <param name="filter"></param> /// <param name="retryCount">The number of retry attempts</param> /// <param name="interval">The interval between each retry attempt</param> /// <returns></returns> public static IRetryPolicy Interval(this IRetryExceptionFilter filter, int retryCount, TimeSpan interval) { return(new IntervalRetryPolicy(filter, Enumerable.Repeat(interval, retryCount).ToArray())); }