colossus.core

BackoffPolicy

case class BackoffPolicy(baseBackoff: FiniteDuration, multiplier: BackoffMultiplier, maxTime: Option[FiniteDuration] = scala.None, maxTries: Option[Int] = scala.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
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

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

    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

Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

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

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. val baseBackoff: FiniteDuration

    The base value to use for backing off.

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

  8. def clone(): AnyRef

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

    Definition Classes
    AnyRef
  10. def finalize(): Unit

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

    Definition Classes
    AnyRef → Any
  12. val immediateFirstAttempt: Boolean

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

  13. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  14. val maxTime: Option[FiniteDuration]

    The maximim amount of time to allow for retrying

  15. val maxTries: Option[Int]

    The maximum number of attempts to make

  16. val multiplier: BackoffMultiplier

    The multiplier that will be applied to the baseBackoff

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

    Definition Classes
    AnyRef
  18. final def notify(): Unit

    Definition Classes
    AnyRef
  19. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  20. def start(): BackoffIncident

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

    Definition Classes
    AnyRef
  22. final def wait(): Unit

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

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

    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