Interface BackOffPolicy
- All Known Subinterfaces:
SleepingBackOffPolicy<T>
- All Known Implementing Classes:
ExponentialBackOffPolicy,ExponentialRandomBackOffPolicy,FixedBackOffPolicy,NoBackOffPolicy,StatelessBackOffPolicy,UniformRandomBackOffPolicy
public interface BackOffPolicy
Strategy interface to control back off between attempts in a single
retry operation.
Implementations are expected to be thread-safe and should be designed for concurrent
access. Configuration for each implementation is also expected to be thread-safe but
need not be suitable for high load concurrent access.
For each block of retry operations the start(org.springframework.retry.RetryContext) method is called and
implementations can return an implementation-specific
BackOffContext that can be used to track state through subsequent back off
invocations. Each back off process is handled via a call to backOff(org.springframework.retry.backoff.BackOffContext).
The RetryTemplate will pass in the
corresponding BackOffContext object created by the call to start(org.springframework.retry.RetryContext).- Author:
- Rob Harrop, Dave Syer
-
Method Summary
Modifier and TypeMethodDescriptionvoidbackOff(BackOffContext backOffContext) Back off/pause in an implementation-specific fashion.start(RetryContext context) Start a new block of back off operations.
-
Method Details
-
start
Start a new block of back off operations. Implementations can choose to pause when this method is called, but normally it returns immediately.- Parameters:
context- theRetryContextcontext, which might contain information that we can use to decide how to proceed.- Returns:
- the implementation-specific
BackOffContextor 'null'.
-
backOff
Back off/pause in an implementation-specific fashion. The passed inBackOffContextcorresponds to the one created by the call tostart(org.springframework.retry.RetryContext)for a given retry operation set.- Parameters:
backOffContext- theBackOffContext- Throws:
BackOffInterruptedException- if the attempt at back off is interrupted.
-