Class DirectRetryingExecutor<ResponseT> (2.35.0)

public class DirectRetryingExecutor<ResponseT> implements RetryingExecutorWithContext<ResponseT>

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.

Inheritance

java.lang.Object > DirectRetryingExecutor<ResponseT>

Implements

com.google.api.gax.retrying.RetryingExecutorWithContext<ResponseT>

Type Parameter

NameDescription
ResponseT

Constructors

DirectRetryingExecutor(RetryAlgorithm<ResponseT> retryAlgorithm)

public DirectRetryingExecutor(RetryAlgorithm<ResponseT> retryAlgorithm)

Creates a new direct retrying executor instance, which will be using retryAlgorithm to determine retrying strategy.

Parameter
NameDescription
retryAlgorithmRetryAlgorithm<ResponseT>

retry algorithm to use for attempts execution

Methods

createFuture(Callable<ResponseT> callable)

public RetryingFuture<ResponseT> createFuture(Callable<ResponseT> callable)

Creates a RetryingFuture, which is a facade, returned to the client code to wait for any retriable operation to complete. The future is bounded to this executor instance.

Parameter
NameDescription
callableCallable<ResponseT>

the actual callable, which should be executed in a retriable context

Returns
TypeDescription
RetryingFuture<ResponseT>

retrying future facade

createFuture(Callable<ResponseT> callable, RetryingContext context)

public RetryingFuture<ResponseT> createFuture(Callable<ResponseT> callable, RetryingContext context)

Creates a RetryingFuture, which is a facade, returned to the client code to wait for any retriable operation to complete. The future is bounded to this executor instance.

Parameters
NameDescription
callableCallable<ResponseT>

the actual callable, which should be executed in a retriable context

contextRetryingContext
Returns
TypeDescription
RetryingFuture<ResponseT>

retrying future facade

sleep(Duration delay)

protected void sleep(Duration delay)

This method simply calls Thread#sleep(long).

Parameter
NameDescription
delayorg.threeten.bp.Duration

time to sleep

Exceptions
TypeDescription
InterruptedException

if any thread has interrupted the current thread

submit(RetryingFuture<ResponseT> retryingFuture)

public ApiFuture<ResponseT> submit(RetryingFuture<ResponseT> retryingFuture)

Submits an attempt for execution in the current thread, causing the current thread to sleep for the specified by the RetryingFuture#getAttemptSettings() amount of time. As result, this method completes execution only after the specified retryingFuture completes.

Parameter
NameDescription
retryingFutureRetryingFuture<ResponseT>

the future previously returned by #createFuture(Callable, RetryingContext)

Returns
TypeDescription
ApiFuture<ResponseT>

returns completed retryingFuture