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.
Implements
com.google.api.gax.retrying.RetryingExecutorWithContext<ResponseT>Type Parameter |
|
---|---|
Name | Description |
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 | |
---|---|
Name | Description |
retryAlgorithm |
RetryAlgorithm<ResponseT> retry algorithm to use |
scheduler |
ScheduledExecutorService 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 | |
---|---|
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 returned 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 the context for this operation |
Returns | |
---|---|
Type | Description |
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 | |
---|---|
Name | Description |
retryingFuture |
RetryingFuture<ResponseT> the future previously returned by #createFuture(Callable, RetryingContext) |
Returns | |
---|---|
Type | Description |
ApiFuture<ResponseT> |
submitted attempt future |