本文整理汇总了C#中IRetryPolicy.OnUnavailable方法的典型用法代码示例。如果您正苦于以下问题:C# IRetryPolicy.OnUnavailable方法的具体用法?C# IRetryPolicy.OnUnavailable怎么用?C# IRetryPolicy.OnUnavailable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IRetryPolicy
的用法示例。
在下文中一共展示了IRetryPolicy.OnUnavailable方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetRetryDecision
static RetryDecision GetRetryDecision(Query query, QueryValidationException exc, IRetryPolicy policy, int queryRetries)
{
if (exc is OverloadedException) return RetryDecision.Retry(null);
else if (exc is IsBootstrappingException) return RetryDecision.Retry(null);
else if (exc is TruncateException) return RetryDecision.Retry(null);
else if (exc is ReadTimeoutException)
{
var e = exc as ReadTimeoutException;
return policy.OnReadTimeout(query, e.ConsistencyLevel, e.RequiredAcknowledgements, e.ReceivedAcknowledgements, e.WasDataRetrieved, queryRetries);
}
else if (exc is WriteTimeoutException)
{
var e = exc as WriteTimeoutException;
return policy.OnWriteTimeout(query, e.ConsistencyLevel, e.WriteType, e.RequiredAcknowledgements, e.ReceivedAcknowledgements, queryRetries);
}
else if (exc is UnavailableException)
{
var e = exc as UnavailableException;
return policy.OnUnavailable(query, e.Consistency, e.RequiredReplicas, e.AliveReplicas, queryRetries);
}
else if (exc is AlreadyExistsException) return RetryDecision.Rethrow();
else if (exc is InvalidConfigurationInQueryException) return RetryDecision.Rethrow();
else if (exc is PreparedQueryNotFoundException) return RetryDecision.Rethrow();
else if (exc is ProtocolErrorException) return RetryDecision.Rethrow();
else if (exc is InvalidQueryException) return RetryDecision.Rethrow();
else if (exc is UnauthorizedException) return RetryDecision.Rethrow();
else if (exc is SyntaxError) return RetryDecision.Rethrow();
else if (exc is ServerErrorException) return null;
else return null;
}