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();
        }
Exemple #3
0
        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 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);
        }
Exemple #5
0
        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();
        }
Exemple #6
0
        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 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();
 }
 public ImmediateRetryPolicy(IRetryExceptionFilter filter, int retryLimit)
 {
     _filter = filter;
     _intervals = Enumerable.Repeat(TimeSpan.Zero, retryLimit).ToArray();
 }
Exemple #11
0
 /// <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));
 }
Exemple #12
0
 /// <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));
 }
Exemple #13
0
 /// <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));
 }
Exemple #14
0
 /// <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));
 }
Exemple #15
0
 /// <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()));
 }