本文整理汇总了C#中IRetryPolicy.ShouldRetryAttempt方法的典型用法代码示例。如果您正苦于以下问题:C# IRetryPolicy.ShouldRetryAttempt方法的具体用法?C# IRetryPolicy.ShouldRetryAttempt怎么用?C# IRetryPolicy.ShouldRetryAttempt使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IRetryPolicy
的用法示例。
在下文中一共展示了IRetryPolicy.ShouldRetryAttempt方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Execute
public static void Execute(Action method, IRetryPolicy retryPolicy, IBackOffScheme backOffScheme, int numRetries = Constants.LoadBalancingHelperNumRetriesDefault)
{
int retryCount = 0;
bool requestSuccess = false;
while ((!requestSuccess) && (retryCount < numRetries))
{
try
{
method();
requestSuccess = true;
}
catch (Exception ex)
{
Trace.TraceError("\tAttempt {0} failed with exception {1} - {2}", retryCount, ex.GetType(), ex.Message);
retryCount++;
if ((retryCount < numRetries) && (retryPolicy.ShouldRetryAttempt(ex)))
{
var sleepInterval = backOffScheme.GetRetryInterval(retryCount);
if (sleepInterval != default (TimeSpan))
{
Trace.TraceInformation("\tWill retry after {0} milliseconds......", sleepInterval.TotalMilliseconds);
Thread.Sleep(sleepInterval);
}
}
else
{
throw;
}
}
}
}