Object

pt.tecnico.dsi

Backoff

Related Doc: package dsi

Permalink

object Backoff

Backoff is used to calculate the next duration to wait before trying to resend a request using different functions, all of which, receive an integer as the iteration number and a duration as the vertical scaling factor.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Backoff
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

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. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def constant(iteration: Int, duration: FiniteDuration = ...): FiniteDuration

    Permalink

    Return a backoff duration that is constant for all iterations.

    Return a backoff duration that is constant for all iterations. For a duration of 5 seconds

    Iteration Backoff
    05 seconds
    15 seconds
    25 seconds
    35 seconds
    45 seconds

    iteration

    number of the iteration, starting at 0

    duration

    non-negative duration, returned by the function, optional argument which defaults to a constant defined in the root config

    returns

    returns the @param duration

  7. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  9. def exponential(iteration: Int, duration: FiniteDuration = ...): FiniteDuration

    Permalink

    Returns a backoff duration that increases exponentially for each iteration.

    Returns a backoff duration that increases exponentially for each iteration.

    For a duration of 5 seconds

    Iteration Backoff
    05 seconds
    120 seconds
    240 seconds
    380 seconds
    4160 seconds

    iteration

    number of the iteration, starting at 0

    duration

    non-negative duration. Scales the exponential function vertically. For a duration of 2 seconds, the backoff is doubled

    returns

    @param duration * 2 power (@param iteration) duration

    Note

    If math.pow(2,iteration) is near Double.MaxValue overflow can happen

  10. def fibonacci(iteration: Int, duration: FiniteDuration = ...): FiniteDuration

    Permalink

    Returns a backoff duration that increases in the same way as the fibonacci sequence does, using an approximation for the concrete fibonacci sequence.

    Returns a backoff duration that increases in the same way as the fibonacci sequence does, using an approximation for the concrete fibonacci sequence.

    For a duration of 5 seconds

    Iteration Backoff
    05.00 seconds
    18.09 seconds
    213.09 seconds
    321.18 seconds
    434.27 seconds
    455.45 seconds

    iteration

    number of the iteration, starting at 0

    duration

    non-negative duration. Scales the fibonacci sequence vertically.

    returns

    @param duration*(fibonacci(@param iteration) + fibonacci(@param iteration - 1))

    Note

    If math.pow(2,iteration) is near Double.MaxValue overflow can happen

  11. def finalize(): Unit

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

    Permalink
    Definition Classes
    AnyRef → Any
  13. val goldenRatio: Double

    Permalink
  14. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  15. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  16. def linear(iteration: Int, duration: FiniteDuration = ...): FiniteDuration

    Permalink

    Returns a backoff duration that increases linearly for each iteration.

    Returns a backoff duration that increases linearly for each iteration. For a duration of 5 seconds

    Iteration Backoff
    00 seconds
    15 seconds
    210 seconds
    315 seconds
    420 seconds

    iteration

    number of the iteration, starting at 0

    duration

    non-negative duration. Defines the increase in time for each unit of duration, optional argument which defaults to a constant defined in the root config

    returns

    @param duration * @param iteration

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

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

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

    Permalink
    Definition Classes
    AnyRef
  20. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  21. def toString(): String

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

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

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

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

Inherited from AnyRef

Inherited from Any

Ungrouped