Class: NatsWork::CircuitBreakedConnection
- Inherits:
-
Object
- Object
- NatsWork::CircuitBreakedConnection
- Defined in:
- lib/natswork/circuit_breaker.rb
Instance Attribute Summary collapse
-
#circuit_breaker ⇒ Object
readonly
Returns the value of attribute circuit_breaker.
-
#connection ⇒ Object
readonly
Returns the value of attribute connection.
Instance Method Summary collapse
- #connect ⇒ Object
- #connected? ⇒ Boolean
- #disconnect ⇒ Object
- #healthy? ⇒ Boolean
-
#initialize(connection, circuit_breaker_options = {}) ⇒ CircuitBreakedConnection
constructor
A new instance of CircuitBreakedConnection.
- #jetstream ⇒ Object
- #on_disconnect(&block) ⇒ Object
- #on_error(&block) ⇒ Object
-
#on_reconnect(&block) ⇒ Object
Delegate callback methods.
- #ping ⇒ Object
- #publish(subject, payload) ⇒ Object
- #request(subject, payload, opts = {}) ⇒ Object
- #stats ⇒ Object
- #subscribe(subject, opts = {}, &block) ⇒ Object
- #unsubscribe(sid) ⇒ Object
- #with_connection(&block) ⇒ Object
Constructor Details
#initialize(connection, circuit_breaker_options = {}) ⇒ CircuitBreakedConnection
Returns a new instance of CircuitBreakedConnection.
159 160 161 162 |
# File 'lib/natswork/circuit_breaker.rb', line 159 def initialize(connection, = {}) @connection = connection @circuit_breaker = CircuitBreaker.new() end |
Instance Attribute Details
#circuit_breaker ⇒ Object (readonly)
Returns the value of attribute circuit_breaker.
157 158 159 |
# File 'lib/natswork/circuit_breaker.rb', line 157 def circuit_breaker @circuit_breaker end |
#connection ⇒ Object (readonly)
Returns the value of attribute connection.
157 158 159 |
# File 'lib/natswork/circuit_breaker.rb', line 157 def connection @connection end |
Instance Method Details
#connect ⇒ Object
164 165 166 |
# File 'lib/natswork/circuit_breaker.rb', line 164 def connect @circuit_breaker.call { @connection.connect } end |
#connected? ⇒ Boolean
172 173 174 |
# File 'lib/natswork/circuit_breaker.rb', line 172 def connected? @connection.connected? end |
#disconnect ⇒ Object
168 169 170 |
# File 'lib/natswork/circuit_breaker.rb', line 168 def disconnect @connection.disconnect end |
#healthy? ⇒ Boolean
206 207 208 |
# File 'lib/natswork/circuit_breaker.rb', line 206 def healthy? @circuit_breaker.closed? && @connection.healthy? end |
#jetstream ⇒ Object
196 197 198 |
# File 'lib/natswork/circuit_breaker.rb', line 196 def jetstream @circuit_breaker.call { @connection.jetstream } end |
#on_disconnect(&block) ⇒ Object
221 222 223 |
# File 'lib/natswork/circuit_breaker.rb', line 221 def on_disconnect(&block) @connection.on_disconnect(&block) end |
#on_error(&block) ⇒ Object
225 226 227 |
# File 'lib/natswork/circuit_breaker.rb', line 225 def on_error(&block) @connection.on_error(&block) end |
#on_reconnect(&block) ⇒ Object
Delegate callback methods
217 218 219 |
# File 'lib/natswork/circuit_breaker.rb', line 217 def on_reconnect(&block) @connection.on_reconnect(&block) end |
#ping ⇒ Object
210 211 212 213 214 |
# File 'lib/natswork/circuit_breaker.rb', line 210 def ping @circuit_breaker.call { @connection.ping } rescue CircuitOpenError false end |
#publish(subject, payload) ⇒ Object
176 177 178 |
# File 'lib/natswork/circuit_breaker.rb', line 176 def publish(subject, payload) @circuit_breaker.call { @connection.publish(subject, payload) } end |
#request(subject, payload, opts = {}) ⇒ Object
184 185 186 |
# File 'lib/natswork/circuit_breaker.rb', line 184 def request(subject, payload, opts = {}) @circuit_breaker.call { @connection.request(subject, payload, opts) } end |
#stats ⇒ Object
200 201 202 203 204 |
# File 'lib/natswork/circuit_breaker.rb', line 200 def stats connection_stats = @connection.stats connection_stats[:circuit_breaker] = @circuit_breaker.stats connection_stats end |
#subscribe(subject, opts = {}, &block) ⇒ Object
180 181 182 |
# File 'lib/natswork/circuit_breaker.rb', line 180 def subscribe(subject, opts = {}, &block) @circuit_breaker.call { @connection.subscribe(subject, opts, &block) } end |
#unsubscribe(sid) ⇒ Object
188 189 190 |
# File 'lib/natswork/circuit_breaker.rb', line 188 def unsubscribe(sid) @circuit_breaker.call { @connection.unsubscribe(sid) } end |
#with_connection(&block) ⇒ Object
192 193 194 |
# File 'lib/natswork/circuit_breaker.rb', line 192 def with_connection(&block) @circuit_breaker.call { @connection.with_connection(&block) } end |