Interface BackOffPolicy

All Known Implementing Classes:
ExponentialBackOffPolicy, FixedBackOffPolicy, NoBackOffPolicy, StatelessBackOffPolicy

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.batch.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.batch.retry.backoff.BackOffContext). The RetryTemplate will pass in the corresponding BackOffContext object created by the call to start(org.springframework.batch.retry.RetryContext).

Rob Harrop, Dave Syer

Method Summary
 void backOff(BackOffContext backOffContext)
          Back off/pause in an implementation-specific fashion.
 BackOffContext start(RetryContext context)
          Start a new block of back off operations.

Method Detail


BackOffContext start(RetryContext context)
Start a new block of back off operations. Implementations can choose to pause when this method is called, but normally it returns immediately.

context - the current retry context, which might contain information that we can use to decide how to proceed.
the implementation-specific BackOffContext or 'null'.


void backOff(BackOffContext backOffContext)
             throws BackOffInterruptedException
Back off/pause in an implementation-specific fashion. The passed in BackOffContext corresponds to the one created by the call to start(org.springframework.batch.retry.RetryContext) for a given retry operation set.

BackOffInterruptedException - if the attempt at back off is interrupted.

Copyright © 2008 SpringSource. All Rights Reserved.