Package com.google.api.gax.retrying (2.43.0)

GitHub Repository

Settings Classes

Settings classes can be used to configure credentials, endpoints, and retry settings for a Client.

Settings Description
com.google.api.gax.retrying.RetrySettings Holds the parameters for retry or poll logic with jitter, timeout and exponential backoff. Actual implementation of the logic is elsewhere.

The intent of these settings is to be used with a call to a remote server, which could either

com.google.api.gax.retrying.TimedAttemptSettings Timed attempt execution settings. Defines time-specific properties of a retry attempt.

Classes

Class Description
com.google.api.gax.retrying.BasicResultRetryAlgorithm A basic implementation of ResultRetryAlgorithm. Using this implementation would mean that all exceptions should be retried, all responses should be accepted (including null) and no retrying process should ever be canceled.
com.google.api.gax.retrying.DirectRetryingExecutor The retry executor which executes attempts in the current thread, potentially causing the current thread to sleep for the specified amount of time before execution.

This class is thread-safe.

com.google.api.gax.retrying.ExponentialPollAlgorithm The timed poll algorithm which uses jittered exponential backoff factor for calculating the next poll execution time and throws PollException in case if total timeout or total number of attempts is reached.
com.google.api.gax.retrying.ExponentialRetryAlgorithm The timed retry algorithm which uses jittered exponential backoff factor for calculating the next attempt execution time.

This class is thread-safe.

com.google.api.gax.retrying.NonCancellableFuture A future which cannot be cancelled from the external package.

For internal use, public for technical reasons.

com.google.api.gax.retrying.RetryAlgorithm The retry algorithm, which makes decision based either on the thrown exception or the returned response, and the execution time settings of the previous attempt.

This class is thread-safe.

com.google.api.gax.retrying.RetrySettings.Builder A base builder class for RetrySettings. See the class documentation of RetrySettings for a description of the different values that can be set.
com.google.api.gax.retrying.ScheduledRetryingExecutor The retry executor which uses ScheduledExecutorService to schedule an attempt tasks.

This implementation does not manage the lifecycle of the underlying ScheduledExecutorService, so it should be managed outside of this class (like calling the ScheduledExecutorService#shutdown() when the pool is not needed anymore). In a typical usage pattern there are usually multiple instances of this class sharing same instance of the

com.google.api.gax.retrying.SimpleStreamResumptionStrategy Simplest implementation of a StreamResumptionStrategy which returns the initial request for unstarted streams.
com.google.api.gax.retrying.StreamingRetryAlgorithm The streaming retry algorithm, which makes decision based either on the thrown exception and the execution time settings of the previous attempt. This extends RetryAlgorithm to take additional information (provided by ServerStreamingAttemptCallable) into account.
com.google.api.gax.retrying.TimedAttemptSettings.Builder

Interfaces

Interface Description
com.google.api.gax.retrying.ResultRetryAlgorithm Same as ResultRetryAlgorithmWithContext, but without methods that accept a RetryingContext. Use ResultRetryAlgorithmWithContext instead of this interface when possible.
com.google.api.gax.retrying.ResultRetryAlgorithmWithContext A result retry algorithm is responsible for the following operations (based on the response returned by the previous attempt or on the thrown exception):
    com.google.api.gax.retrying.RetryingContext Context for a retryable operation.

    It provides state to individual RetryingFutures via the RetryingExecutor.

    com.google.api.gax.retrying.RetryingExecutor A retrying executor is responsible for the following operations:
    1. Creating first attempt RetryingFuture, which acts as a facade, hiding from client
    com.google.api.gax.retrying.RetryingExecutorWithContext A RetryingExecutor that accepts a per-operation context. See Also: RetryingExecutor
    com.google.api.gax.retrying.RetryingFuture Represents a retrying future. This is a facade hiding all the complications of an asynchronous/synchronous execution of a retriable task.

    This interface is for advanced/internal use only.

    com.google.api.gax.retrying.StreamResumptionStrategy This is part of the server streaming retry api. Its implementers are responsible for tracking the progress of the stream and calculating a request to resume it in case of an error.

    Implementations don't have to be threadsafe because all of the calls will be serialized.

    com.google.api.gax.retrying.TimedRetryAlgorithm Same as TimedRetryAlgorithmWithContext, but without methods that accept a RetryingContext. Use TimedRetryAlgorithmWithContext instead of this interface when possible.
    com.google.api.gax.retrying.TimedRetryAlgorithmWithContext A timed retry algorithm is responsible for the following operations, based on the previous attempt settings and current time:

      Exceptions

      Exception Description
      com.google.api.gax.retrying.PollException PollException is thrown when polling algorithm exceeds total timeout or total number of attempts.
      com.google.api.gax.retrying.ServerStreamingAttemptException A wrapper exception thrown by ServerStreamingAttemptCallable to communicate additional context to the StreamingRetryAlgorithm and to pass the original cancellation stack trace to RetryingServerStreamingCallable.