class CircuitBreaker::Memory
Attributes
The main runner, must respond to call
@return [Proc/Lambda] the runner
The count of failures @return [Integer] the amount of failures to permit. Defaults to 10 seconds
The current failures @return [Array<CircuitBreaker::Failure>] - a list of failures serialized.
The current logger @return [Object] - The logger sent in at initialization. Defaults to ruby’s std Logger class
The amount of time in seconds before a breaker should reset if currently open. Defaults to 5 @return [Integer]
The current state @return [Symbol] should always return either :open, :closed or :half-open.
Use the helper methods in lib/circuit_breaker.rb for more readable code.
Public Class Methods
@example create a new breaker
breaker = CircuitBreaker::Memory.new do |cb| cb.circuit = -> (arg) { my_method(arg) } cb.failure_limit = 2 cb.reset_timeout = 5 end
@yieldparam circuit - (look to {#circuit}) @yieldparam failure_limit
- (look to {#failure_limit}) @yieldparam reset_timeout
- (look to {#reset_timeout}) @yieldparam logger - (look to {#logger}) @return [CircuitBreaker::Memory] the object.
# File lib/circuit_breaker/memory.rb, line 37 def initialize(&block) yield self @failure_limit ||= 5 @reset_timeout ||= 10 @logger ||= Logger.new(STDOUT) @state = :closed @failures = [] run_validations end
Public Instance Methods
(look to {CircuitBreaker::add_failure})
# File lib/circuit_breaker/memory.rb, line 48 def add_failure(failure) failures << failure end