public static Timeout ( Func |
||
timeoutProvider | Func |
A function to provide the timeout for this execution. |
return |
public static TimeoutPolicy Timeout(Func<TimeSpan> timeoutProvider)
{
Action<Context, TimeSpan, Task> doNothing = (_, __, ___) => { };
return Timeout(timeoutProvider, TimeoutStrategy.Optimistic, doNothing);
}
Policy::Timeout ( Func |
|
Policy::Timeout ( Func |
|
Policy::Timeout ( Func |
|
Policy::Timeout ( System.TimeSpan timeout ) : |
|
Policy::Timeout ( System.TimeSpan timeout, Action |
|
Policy::Timeout ( System.TimeSpan timeout, TimeoutStrategy timeoutStrategy ) : |
|
Policy::Timeout ( System.TimeSpan timeout, TimeoutStrategy timeoutStrategy, Action |
|
Policy::Timeout ( int seconds ) : |
|
Policy::Timeout ( int seconds, Action |
|
Policy::Timeout ( int seconds, TimeoutStrategy timeoutStrategy ) : |
|
Policy::Timeout ( int seconds, TimeoutStrategy timeoutStrategy, Action |
protected PolicyResult RetryAction(Action action, int timeoutInSeconds = 30, int retryIntervalInSeconds = 1) { Guard.NotNull(action, nameof(action), "Requires disposing function to be retried"); Guard.NotLessThan(timeoutInSeconds, 0, nameof(timeoutInSeconds), "Requires a timeout (in sec) greater than zero"); Guard.NotLessThan(retryIntervalInSeconds, 0, nameof(retryIntervalInSeconds), "Requires a retry interval (in sec) greater than zero"); return(Policy.Timeout(TimeSpan.FromSeconds(timeoutInSeconds)) .Wrap(Policy.Handle <Exception>() .WaitAndRetryForever(index => TimeSpan.FromSeconds(retryIntervalInSeconds))) .ExecuteAndCapture(action)); }