Esempio n. 1
0
 public static bool AlwaysRetry(this RetryReason reason)
 {
     return(reason == RetryReason.KvNotMyVBucket ||
            reason == RetryReason.ScopeNotFound ||
            reason == RetryReason.CollectionNotFound ||
            reason == RetryReason.ViewsNoActivePartition ||
            reason == RetryReason.CircuitBreakerOpen);
 }
Esempio n. 2
0
        public RetryAction RetryAfter(IOperation operation, RetryReason reason)
        {
            if (operation.Idempotent || reason.AllowsNonIdempotentRetries())
            {
                var backoffDuration = _backoffCalculator.CalculateBackoff(operation);
                return(RetryAction.WithDuration(backoffDuration));
            }

            return(RetryAction.WithDuration(null));
        }
        public RetryAction RetryAfter(IRequest request, RetryReason reason)
        {
            if (request.Idempotent || reason.AllowsNonIdempotentRetries())
            {
                var backoffDuration = _backoffCalculator.CalculateBackoff(request);
                return(RetryAction.Duration(backoffDuration));
            }

            return(RetryAction.Duration(null));
        }
Esempio n. 4
0
        /// <summary>
        /// Is retryable failure due to Detours
        /// </summary>
        public static bool IsDetoursRetrableFailure(this RetryReason retryReason)
        {
            switch (retryReason)
            {
            case RetryReason.MismatchedMessageCount:
            case RetryReason.OutputWithNoFileAccessFailed:
                return(true);
            }

            return(false);
        }
Esempio n. 5
0
        /// <summary>
        /// Is retryable failure during the pre process execution.
        /// </summary>
        public static bool IsPreProcessExecRetryableFailure(this RetryReason retryReason)
        {
            switch (retryReason)
            {
            case RetryReason.ProcessStartFailure:
            case RetryReason.TempDirectoryCleanupFailure:
                return(true);

            default:
                return(false);
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Returns a RetryInfo object with the default location for the given RetryReason.
        /// </summary>
        public static RetryInfo GetDefault(RetryReason reason)
        {
            switch (reason)
            {
            case RetryReason.ResourceExhaustion:
            case RetryReason.ProcessStartFailure:
            case RetryReason.TempDirectoryCleanupFailure:
            case RetryReason.StoppedWorker:
                return(RetryOnDifferentWorker(reason));

            case RetryReason.OutputWithNoFileAccessFailed:
            case RetryReason.MismatchedMessageCount:
            case RetryReason.AzureWatsonExitCode:
            case RetryReason.UserSpecifiedExitCode:
                return(RetryOnSameWorker(reason));

            case RetryReason.VmExecutionError:
                return(RetryOnSameAndDifferentWorkers(reason));

            default:
                throw Contract.AssertFailure("Default not defined for RetryReason: " + reason.ToString());
            }
        }
 public static bool AlwaysRetry(this RetryReason reason)
 {
     return(reason == RetryReason.KvNotMyVBucket ||
            reason == RetryReason.KvCollectionOutdated ||
            reason == RetryReason.ViewsNoActivePartition);
 }
 public static bool AllowsNonIdempotentRetries(this RetryReason reason)
 {
     return(!(reason == RetryReason.Unknown || reason == RetryReason.SocketClosedWhileInFlight));
 }
Esempio n. 9
0
 /// <summary>
 /// Returns a RetryInfo object to be retried on the Same Worker first, and retried on another worker of it fails again
 /// </summary>
 private static RetryInfo RetryOnSameAndDifferentWorkers(RetryReason retryReason)
 {
     return(new RetryInfo(retryReason, RetryLocation.Both));
 }
Esempio n. 10
0
 /// <summary>
 /// Returns a RetryInfo object to be retried on a Different Worker
 /// </summary>
 private static RetryInfo RetryOnDifferentWorker(RetryReason retryReason)
 {
     return(new RetryInfo(retryReason, RetryLocation.DifferentWorker));
 }
Esempio n. 11
0
 public static extern void BIO_set_retry_reason(BIO a, RetryReason ptr);
Esempio n. 12
0
 private partial void LogRetryQuery(string clientContextId, Redacted <string> statement, RetryReason reason);
Esempio n. 13
0
 /// <summary>
 /// Is retryable failure due to a pre process execution failure or due to remoting (VM or AnyBuild) infrastructure error.
 /// </summary>
 public static bool IsPreProcessExecOrRemotingInfraFailure(this RetryReason retryReason) =>
 retryReason.IsPreProcessExecRetryableFailure() ||
 retryReason == RetryReason.VmExecutionError ||
 retryReason == RetryReason.RemoteFallback;
 public RetryAction RetryAfter(IRequest request, RetryReason reason)
 {
     return(RetryAction.Duration(null));
 }
Esempio n. 15
0
 /// <summary>
 /// Constructor.
 /// </summary>
 private RetryInfo(RetryReason retryReason, RetryMode retryMode)
 {
     RetryReason = retryReason;
     RetryMode   = retryMode;
 }
 public RetryAction RetryAfter(IOperation ret, RetryReason reason)
 {
     return(RetryAction.WithDuration(null));
 }
Esempio n. 17
0
 public static bool AlwaysRetry(this RetryReason reason)
 {
     return(reason == RetryReason.KvNotMyVBucket || reason == RetryReason.KvCollectionOutdated);
 }
Esempio n. 18
0
 private partial void LogRetryDueToAlwaysRetry(uint opaque, Redacted <string> key, RetryReason reason);
Esempio n. 19
0
 /// <nodoc/>
 private RetryInfo(RetryReason retryReason, RetryLocation retryLocation)
 {
     RetryReason   = retryReason;
     RetryLocation = retryLocation;
 }
Esempio n. 20
0
 private partial void LogRetryDueToDuration(uint opaque, Redacted <string> key, RetryReason reason);
Esempio n. 21
0
 /// <summary>
 /// Returns a RetryInfo object to be retried on the Same Worker
 /// </summary>
 private static RetryInfo RetryOnSameWorker(RetryReason retryReason)
 {
     return(new RetryInfo(retryReason, RetryLocation.SameWorker));
 }
 public static void IncrementAttempts(this IRequest request, RetryReason reason)
 {
     request.Attempts++;
     request.RetryReasons.Add(reason);
 }
Esempio n. 23
0
 private static RetryInfo RetryInline(RetryReason retryReason) => new (retryReason, RetryMode.Inline);