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.
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 |
Durationtime 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 |