- All Superinterfaces:
Supplier<RetryPolicy>
- All Known Implementing Classes:
SimpleRetryPolicy
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
Mechanism for controlling retry of attempts to load data by a
ConfigSource.
When a Config attempts to load the underlying data
of a ConfigSource it uses a RetryPolicy to govern if and how it
retries the load operation in case of errors.
The execute(java.util.function.Supplier) method of each policy
implementation must perform at least one attempt to load the data, even if it
chooses not to retry in case of errors.
-
Method Summary
Modifier and TypeMethodDescriptiondefault booleancancel(boolean mayInterruptIfRunning) Cancels the current use of the retry policy.<T> TInvokes the providedSupplierto read the source data and returns that data.default RetryPolicyget()
-
Method Details
-
execute
Invokes the providedSupplierto read the source data and returns that data.The implementation of this method incorporates the retry logic.
- Type Parameters:
T- result type- Parameters:
call- supplier ofT- Returns:
- loaded data returned by the provided
Supplier
-
cancel
default boolean cancel(boolean mayInterruptIfRunning) Cancels the current use of the retry policy.Implementations should correctly handle three cases:
cancelinvoked when no invocation ofexecuteis in progress,cancelinvoked when an invocation ofexecuteis active but no attempted load is actually in progress (e.g., a prior attempt failed and the retry policy is waiting for some time to pass before trying again), andcancelinvoked while a load attempt is in progress.
- Parameters:
mayInterruptIfRunning- whether an in-progress load attempt should be interrupted- Returns:
falseif the task could not be canceled, typically because it has already completed;trueotherwise
-
get
- Specified by:
getin interfaceSupplier<RetryPolicy>
-