Class DirectRetryingExecutor (2.63.1)

public class DirectRetryingExecutor implements RetryingExecutorWithContext

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

Implements

com.google.api.gax.retrying.RetryingExecutorWithContext

Type Parameter

Name Description
ResponseT

Constructors

DirectRetryingExecutor(RetryAlgorithm retryAlgorithm)

public DirectRetryingExecutor(RetryAlgorithm 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 callable)

public RetryingFuture createFuture(Callable 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 callable, RetryingContext context)

public RetryingFuture createFuture(Callable 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 retryingFuture)

public ApiFuture submit(RetryingFuture 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