org.multiverse.api
Class DefaultBackoffPolicy

java.lang.Object
  extended by org.multiverse.api.DefaultBackoffPolicy
All Implemented Interfaces:
BackoffPolicy

public final class DefaultBackoffPolicy
extends Object
implements BackoffPolicy

A BackoffPolicy that does an 'exponential' backoff. So each next attempt, the calculated delay is increased and randomized (so the next value can be smaller than the previous, but overall they will increase).

Author:
Peter Veentjer.

Field Summary
static BackoffPolicy MAX_100_MS
           
 
Constructor Summary
DefaultBackoffPolicy()
          Creates an ExponentialBackoffPolicy with 100 nanoseconds as minimal delay and 100 milliseconds as maximum delay.
DefaultBackoffPolicy(long minDelayNs)
          Creates an ExponentialBackoffPolicy with given maximum delay.
 
Method Summary
protected  long calcDelayNs(int attempt)
           
 void delay(int attempt)
          Delays the calling Thread.
 void delayUninterruptible(int attempt)
          Delays the calling Thread without being interrupted.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAX_100_MS

public static final BackoffPolicy MAX_100_MS
Constructor Detail

DefaultBackoffPolicy

public DefaultBackoffPolicy()
Creates an ExponentialBackoffPolicy with 100 nanoseconds as minimal delay and 100 milliseconds as maximum delay.


DefaultBackoffPolicy

public DefaultBackoffPolicy(long minDelayNs)
Creates an ExponentialBackoffPolicy with given maximum delay.

Parameters:
minDelayNs - the minimum delay in nanoseconds to wait. If a negative or zero value provided, it will be interpreted that no external minimal value is needed.
Throws:
NullPointerException - if unit is null.
Method Detail

delay

public void delay(int attempt)
           throws InterruptedException
Description copied from interface: BackoffPolicy
Delays the calling Thread.

The implementation is free to make this a no-op call.

Specified by:
delay in interface BackoffPolicy
Throws:
InterruptedException

delayUninterruptible

public void delayUninterruptible(int attempt)
Description copied from interface: BackoffPolicy
Delays the calling Thread without being interrupted.

The implementation is free to make this a no-op call.

Specified by:
delayUninterruptible in interface BackoffPolicy
Parameters:
attempt - the

calcDelayNs

protected long calcDelayNs(int attempt)


Copyright © 2012. All Rights Reserved.