Module: HTTPX::Plugins::CircuitBreaker::InstanceMethods
- Includes:
- Callbacks
- Defined in:
- lib/httpx/plugins/circuit_breaker.rb,
sig/plugins/circuit_breaker.rbs
Instance Method Summary
collapse
Methods included from Callbacks
#callbacks, #callbacks_for?, #emit, #on, #once
Instance Method Details
#initialize ⇒ Object
30
31
32
33
|
# File 'lib/httpx/plugins/circuit_breaker.rb', line 30
def initialize(*)
super
@circuit_store = CircuitStore.new(@options)
end
|
#try_circuit_open(request, response) ⇒ response?
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/httpx/plugins/circuit_breaker.rb', line 80
def try_circuit_open(request, response)
if response.is_a?(ErrorResponse)
case response.error
when RequestTimeoutError
@circuit_store.try_open(request.uri, response)
else
@circuit_store.try_open(request.origin, response)
end
elsif (break_on = request.options.circuit_breaker_break_on) && break_on.call(response)
@circuit_store.try_open(request.uri, response)
else
@circuit_store.try_close(request.uri)
nil
end
end
|