Class

colossus.core

BackoffPolicy

Related Doc: package core

Permalink

case class BackoffPolicy(baseBackoff: FiniteDuration, multiplier: BackoffMultiplier, maxTime: Option[FiniteDuration] = None, maxTries: Option[Int] = None, immediateFirstAttempt: Boolean = true) extends RetryPolicy with Product with Serializable

A RetryPolicy used to gradually back-off from retries of an operation. This class is flexible enough to handle most common retry schemes, such as constantly retrying for a given amount of time or exponentially backing-off.

Examples

Retry every 30 seconds for up to 5 minutes

BackoffPolicy(30.seconds, BackoffMultiplier.Constant, maxTime = Some(5.minutes), immediateFirstAttempt = false)

Immediately retry once, then backoff exponentially starting at 100 milliseconds, doubling with every attempt until the interval in between attempts is 5 seconds

BackoffPolicy(100.milliseconds, BackoffMultiplier.Exponential(5.seconds))
baseBackoff

The base value to use for backing off. This may be used by the multiplier

multiplier

The multiplier that will be applied to the baseBackoff

maxTime

The maximim amount of time to allow for retrying

maxTries

The maximum number of attempts to make

immediateFirstAttempt

Whether the first retry attempt should be immediate or use the given backoff and multiplier

Linear Supertypes
Serializable, Serializable, Product, Equals, RetryPolicy, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. BackoffPolicy
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. RetryPolicy
  7. AnyRef
  8. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Instance Constructors

  1. new BackoffPolicy(baseBackoff: FiniteDuration, multiplier: BackoffMultiplier, maxTime: Option[FiniteDuration] = None, maxTries: Option[Int] = None, immediateFirstAttempt: Boolean = true)

    Permalink

    baseBackoff

    The base value to use for backing off. This may be used by the multiplier

    multiplier

    The multiplier that will be applied to the baseBackoff

    maxTime

    The maximim amount of time to allow for retrying

    maxTries

    The maximum number of attempts to make

    immediateFirstAttempt

    Whether the first retry attempt should be immediate or use the given backoff and multiplier

Type Members

  1. class BackoffIncident extends RetryIncident

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. val baseBackoff: FiniteDuration

    Permalink

    The base value to use for backing off.

    The base value to use for backing off. This may be used by the multiplier

  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  8. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  10. val immediateFirstAttempt: Boolean

    Permalink

    Whether the first retry attempt should be immediate or use the given backoff and multiplier

  11. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  12. val maxTime: Option[FiniteDuration]

    Permalink

    The maximim amount of time to allow for retrying

  13. val maxTries: Option[Int]

    Permalink

    The maximum number of attempts to make

  14. val multiplier: BackoffMultiplier

    Permalink

    The multiplier that will be applied to the baseBackoff

  15. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  16. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  18. def start(): BackoffIncident

    Permalink
    Definition Classes
    BackoffPolicyRetryPolicy
  19. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  20. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from RetryPolicy

Inherited from AnyRef

Inherited from Any

Ungrouped