Class DirectRetryingExecutor<ResponseT> (2.52.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

Name Description
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
Name Description
retryAlgorithm RetryAlgorithm<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
Name Description
callable Callable<ResponseT>

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

Returns
Type Description
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
Name Description
callable Callable<ResponseT>

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

context RetryingContext
Returns
Type Description
RetryingFuture<ResponseT>

retrying future facade

sleep(Duration delay)

protected void sleep(Duration delay)

This method simply calls Thread#sleep(long).

Parameter
Name Description
delay Duration

time to sleep

Exceptions
Type Description
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
Name Description
retryingFuture RetryingFuture<ResponseT>

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

Returns
Type Description
ApiFuture<ResponseT>

returns completed retryingFuture