Module: Supervision
- Extended by:
- ClassMethods
- Defined in:
- lib/supervision.rb,
lib/supervision/atomic.rb,
lib/supervision/counter.rb,
lib/supervision/factory.rb,
lib/supervision/version.rb,
lib/supervision/registry.rb,
lib/supervision/time_dsl.rb,
lib/supervision/configuration.rb,
lib/supervision/circuit_system.rb,
lib/supervision/circuit_breaker.rb,
lib/supervision/circuit_control.rb,
lib/supervision/circuit_monitor.rb
Defined Under Namespace
Modules: ClassMethods, TimeDSL Classes: Atomic, CircuitBreaker, CircuitControl, CircuitMonitor, CircuitSystem, Configuration, Counter, Factory, Registry
Constant Summary collapse
- SupervisionError =
Generic error
Class.new(::StandardError)
- CircuitBreakerOpenError =
Raised when circuit opens
Class.new(SupervisionError)
- TypeError =
Raised when checking circuit type
Class.new(SupervisionError)
- InvalidParameterError =
Raised when invalid configuration parameter is specified
Class.new(SupervisionError)
- DuplicateEntryError =
Raised when registering duplicate circuit breaker name
Class.new(SupervisionError)
- VERSION =
"0.2.0"
Class Method Summary collapse
-
.[](name) ⇒ Supervision::CircuitBreaker
Retrieve circuit by name.
- .circuit_system ⇒ Object
- .configuration ⇒ Object
- .included(base) ⇒ Object
-
.init ⇒ Object
private
Initialize a circuit system.
-
.new(name = nil, options = {}, &block) ⇒ Object
Create a new circuit breaker.
Methods included from ClassMethods
Class Method Details
.[](name) ⇒ Supervision::CircuitBreaker
Retrieve circuit by name
67 68 69 |
# File 'lib/supervision.rb', line 67 def [](name) circuit_system[name] end |
.circuit_system ⇒ Object
51 52 53 |
# File 'lib/supervision.rb', line 51 def circuit_system Thread.current[:supervision_circuit_system] ||= @circuit_system end |
.configuration ⇒ Object
40 41 42 |
# File 'lib/supervision.rb', line 40 def configuration @configuration ||= Configuration.new end |
.included(base) ⇒ Object
36 37 38 |
# File 'lib/supervision.rb', line 36 def included(base) base.send :extend, ClassMethods end |
.init ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Initialize a circuit system
47 48 49 |
# File 'lib/supervision.rb', line 47 def init @circuit_system = CircuitSystem.new end |
.new(name = nil, options = {}, &block) ⇒ Object
Create a new circuit breaker
58 59 60 |
# File 'lib/supervision.rb', line 58 def new(name = nil, = {}, &block) name ? supervise_as(name, , &block) : supervise(, &block) end |