akka.pattern

CircuitBreaker

Related Docs: object CircuitBreaker | package pattern

class CircuitBreaker extends AbstractCircuitBreaker

Provides circuit breaker functionality to provide stability when working with "dangerous" operations, e.g. calls to remote systems

Transitions through three states: - In *Closed* state, calls pass through until the maxFailures count is reached. This causes the circuit breaker to open. Both exceptions and calls exceeding callTimeout are considered failures. - In *Open* state, calls fail-fast with an exception. After resetTimeout, circuit breaker transitions to half-open state. - In *Half-Open* state, the first call will be allowed through, if it succeeds the circuit breaker will reset to closed state. If it fails, the circuit breaker will re-open to open state. All calls beyond the first that execute while the first is running will fail-fast with an exception.

Source
CircuitBreaker.scala
Linear Supertypes
AbstractCircuitBreaker, AnyRef, Any
Type Hierarchy Learn more about scaladoc diagrams
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. CircuitBreaker
  2. AbstractCircuitBreaker
  3. AnyRef
  4. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new CircuitBreaker(executor: ExecutionContext, scheduler: Scheduler, maxFailures: Int, callTimeout: FiniteDuration, resetTimeout: FiniteDuration)

  2. new CircuitBreaker(scheduler: Scheduler, maxFailures: Int, callTimeout: FiniteDuration, resetTimeout: FiniteDuration)(implicit executor: ExecutionContext)

    scheduler

    Reference to Akka scheduler

    maxFailures

    Maximum number of failures before opening the circuit

    callTimeout

    scala.concurrent.duration.FiniteDuration of time after which to consider a call a failure

    resetTimeout

    scala.concurrent.duration.FiniteDuration of time after which to attempt to close the circuit

    executor

    scala.concurrent.ExecutionContext used for execution of state transition listeners

Value Members

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

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

    Definition Classes
    AnyRef → Any
  3. def +(other: String): String

    Implicit information
    This member is added by an implicit conversion from CircuitBreaker to any2stringadd[CircuitBreaker] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (CircuitBreaker, B)

    Implicit information
    This member is added by an implicit conversion from CircuitBreaker to ArrowAssoc[CircuitBreaker] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean

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

    Definition Classes
    Any
  7. def callWithCircuitBreaker[T](body: Callable[Future[T]]): Future[T]

    Java API for #withCircuitBreaker

    Java API for #withCircuitBreaker

    T

    return type from call

    body

    Call needing protected

    returns

    scala.concurrent.Future containing the call result

  8. def callWithSyncCircuitBreaker[T](body: Callable[T]): T

    Java API for #withSyncCircuitBreaker

    T

    return type from call

    body

    Call needing protected

    returns

    The result of the call

  9. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. def ensuring(cond: (CircuitBreaker) ⇒ Boolean, msg: ⇒ Any): CircuitBreaker

    Implicit information
    This member is added by an implicit conversion from CircuitBreaker to Ensuring[CircuitBreaker] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  11. def ensuring(cond: (CircuitBreaker) ⇒ Boolean): CircuitBreaker

    Implicit information
    This member is added by an implicit conversion from CircuitBreaker to Ensuring[CircuitBreaker] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. def ensuring(cond: Boolean, msg: ⇒ Any): CircuitBreaker

    Implicit information
    This member is added by an implicit conversion from CircuitBreaker to Ensuring[CircuitBreaker] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  13. def ensuring(cond: Boolean): CircuitBreaker

    Implicit information
    This member is added by an implicit conversion from CircuitBreaker to Ensuring[CircuitBreaker] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  14. final def eq(arg0: AnyRef): Boolean

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

    Definition Classes
    AnyRef → Any
  16. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  17. def formatted(fmtstr: String): String

    Implicit information
    This member is added by an implicit conversion from CircuitBreaker to StringFormat[CircuitBreaker] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  18. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  19. def hashCode(): Int

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

    Definition Classes
    Any
  21. final def ne(arg0: AnyRef): Boolean

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

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

    Definition Classes
    AnyRef
  24. def onClose(callback: Runnable): CircuitBreaker

    JavaAPI for onClose

    JavaAPI for onClose

    callback

    Handler to be invoked on state change

    returns

    CircuitBreaker for fluent usage

  25. def onClose(callback: ⇒ Unit): CircuitBreaker

    Adds a callback to execute when circuit breaker state closes

    Adds a callback to execute when circuit breaker state closes

    The callback is run in the scala.concurrent.ExecutionContext supplied in the constructor.

    callback

    Handler to be invoked on state change

    returns

    CircuitBreaker for fluent usage

  26. def onHalfOpen(callback: Runnable): CircuitBreaker

    JavaAPI for onHalfOpen

    JavaAPI for onHalfOpen

    callback

    Handler to be invoked on state change

    returns

    CircuitBreaker for fluent usage

  27. def onHalfOpen(callback: ⇒ Unit): CircuitBreaker

    Adds a callback to execute when circuit breaker transitions to half-open

    Adds a callback to execute when circuit breaker transitions to half-open

    The callback is run in the scala.concurrent.ExecutionContext supplied in the constructor.

    callback

    Handler to be invoked on state change

    returns

    CircuitBreaker for fluent usage

  28. def onOpen(callback: Runnable): CircuitBreaker

    Java API for onOpen

    Java API for onOpen

    callback

    Handler to be invoked on state change

    returns

    CircuitBreaker for fluent usage

  29. def onOpen(callback: ⇒ Unit): CircuitBreaker

    Adds a callback to execute when circuit breaker opens

    Adds a callback to execute when circuit breaker opens

    The callback is run in the scala.concurrent.ExecutionContext supplied in the constructor.

    callback

    Handler to be invoked on state change

    returns

    CircuitBreaker for fluent usage

  30. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  31. def toString(): String

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

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  35. def withCircuitBreaker[T](body: ⇒ Future[T]): Future[T]

    Wraps invocations of asynchronous calls that need to be protected

    Wraps invocations of asynchronous calls that need to be protected

    T

    return type from call

    body

    Call needing protected

    returns

    scala.concurrent.Future containing the call result

  36. def withSyncCircuitBreaker[T](body: ⇒ T): T

    Wraps invocations of synchronous calls that need to be protected

    Wraps invocations of synchronous calls that need to be protected

    Calls are run in caller's thread

    T

    return type from call

    body

    Call needing protected

    returns

    The result of the call

  37. def [B](y: B): (CircuitBreaker, B)

    Implicit information
    This member is added by an implicit conversion from CircuitBreaker to ArrowAssoc[CircuitBreaker] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Inherited from AbstractCircuitBreaker

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from CircuitBreaker to any2stringadd[CircuitBreaker]

Inherited by implicit conversion StringFormat from CircuitBreaker to StringFormat[CircuitBreaker]

Inherited by implicit conversion Ensuring from CircuitBreaker to Ensuring[CircuitBreaker]

Inherited by implicit conversion ArrowAssoc from CircuitBreaker to ArrowAssoc[CircuitBreaker]

Ungrouped