/// <summary> /// The timeout for the overall policy. /// </summary> /// <param name="sqlStrategyOptions"> /// The <see cref="SqlStrategyOptions"/> instance. /// </param> /// <returns> /// The configured value if it is not <see langword="null"/>; otherwise, /// the default value. /// </returns> public static TimeSpan OverallTimeout(this SqlStrategyOptions sqlStrategyOptions) { return((sqlStrategyOptions.OverallTimeout ?? SqlStrategyOptions.Defaults.OverallTimeout) !.Value); }
/// <summary> /// Generates sleep durations in an exponential manner. /// </summary> /// <param name="sqlStrategyOptions"> /// The <see cref="SqlStrategyOptions"/> instance. /// </param> /// <returns> /// The configured value if it is not <see langword="null"/> otherwise, /// the default value. /// </returns> public static IEnumerable <TimeSpan> ExponentialBackoff(this SqlStrategyOptions sqlStrategyOptions) { return(Backoff.ExponentialBackoff(TimeSpan.FromSeconds(2), sqlStrategyOptions.RetryCount())); }
/// <summary> /// The number of exceptions that are allowed before opening the circuit. /// </summary> /// <param name="sqlStrategyOptions"> /// The <see cref="SqlStrategyOptions"/> instance. /// </param> /// <returns> /// The configured value if it is not <see langword="null"/>; otherwise, /// the default value. /// </returns> public static int ExceptionsAllowedBeforeBreaking(this SqlStrategyOptions sqlStrategyOptions) { return((sqlStrategyOptions.ExceptionsAllowedBeforeBreaking ?? SqlStrategyOptions.Defaults.ExceptionsAllowedBeforeBreaking) !.Value); }
/// <summary> /// The duration the circuit will stay open before resetting. /// </summary> /// <param name="sqlStrategyOptions"> /// The <see cref="SqlStrategyOptions"/> instance. /// </param> /// <returns> /// The configured value if it is not <see langword="null"/>; otherwise, /// the default value. /// </returns> public static TimeSpan DurationOfBreak(this SqlStrategyOptions sqlStrategyOptions) { return((sqlStrategyOptions.DurationOfBreak ?? SqlStrategyOptions.Defaults.DurationOfBreak) !.Value); }
/// <summary> /// The timeout for each retry. /// </summary> /// <param name="sqlStrategyOptions"> /// The <see cref="SqlStrategyOptions"/> instance. /// </param> /// <returns> /// The configured value if it is not <see langword="null"/>; otherwise, /// the default value. /// </returns> public static TimeSpan TimeoutPerRetry(this SqlStrategyOptions sqlStrategyOptions) { return((sqlStrategyOptions.TimeoutPerRetry ?? SqlStrategyOptions.Defaults.TimeoutPerRetry) !.Value); }
/// <summary> /// The retry count. /// </summary> /// <param name="sqlStrategyOptions"> /// The <see cref="SqlStrategyOptions"/> instance. /// </param> /// <returns> /// The configured value if it is not <see langword="null"/>; otherwise, /// the default value. /// </returns> public static int RetryCount(this SqlStrategyOptions sqlStrategyOptions) { return((sqlStrategyOptions.RetryCount ?? SqlStrategyOptions.Defaults.RetryCount) !.Value); }