Class ScheduledRetryingExecutor<ResponseT> (2.9.0)

public class ScheduledRetryingExecutor<ResponseT> implements RetryingExecutorWithContext<ResponseT>

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 underlying ScheduledExecutorService.

This class is thread-safe.

Inheritance

java.lang.Object > ScheduledRetryingExecutor<ResponseT>

Implements

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

Type Parameter

NameDescription
ResponseT

Constructors

ScheduledRetryingExecutor(RetryAlgorithm<ResponseT> retryAlgorithm, ScheduledExecutorService scheduler)

public ScheduledRetryingExecutor(RetryAlgorithm<ResponseT> retryAlgorithm, ScheduledExecutorService scheduler)

Creates a new scheduled retry executor, which will be using scheduler for actual attempts scheduling and retryAlgorithm for retrying strategy.

Parameters
NameDescription
retryAlgorithmRetryAlgorithm<ResponseT>

retry algorithm to use

schedulerScheduledExecutorService

scheduler

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 returned 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 returned future is bounded to this executor instance.

Parameters
NameDescription
callableCallable<ResponseT>

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

contextRetryingContext

the context for this operation

Returns
TypeDescription
RetryingFuture<ResponseT>

retrying future facade

submit(RetryingFuture<ResponseT> retryingFuture)

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

Submits an attempt for execution in a different thread.

Parameter
NameDescription
retryingFutureRetryingFuture<ResponseT>

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

Returns
TypeDescription
com.google.api.core.ApiFuture<ResponseT>

submitted attempt future