public interface RetryingExecutor<ResponseT>A retrying executor is responsible for the following operations:
- Creating first attempt RetryingFuture, which acts as a facade, hiding from client code the actual execution of scheduled retry attempts.
- Executing the actual Callable in a retriable context.
This interface is for internal/advanced use only.
Type Parameter |
|
|---|---|
| Name | Description |
ResponseT |
|
Methods
createFuture(Callable<ResponseT> callable)
public abstract RetryingFuture<ResponseT> createFuture(Callable<ResponseT> callable)Creates the RetryingFuture, which is a facade, returned to the client code to wait for any retriable operation to complete.
| 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 |
submit(RetryingFuture<ResponseT> retryingFuture)
public abstract ApiFuture<ResponseT> submit(RetryingFuture<ResponseT> retryingFuture)Submits an attempt for execution. A typical implementation will either try to execute the attempt in the current thread or schedule it for an execution, using some sort of async execution service.
| Parameter | |
|---|---|
| Name | Description |
retryingFuture |
RetryingFuture<ResponseT>the future previously returned by #createFuture(Callable) and reused for each subsequent attempt of same operation. |
| Returns | |
|---|---|
| Type | Description |
ApiFuture<ResponseT> |
submitted attempt future |