circuit_breaker

circuit_breaker

CircuitBreaker is a relatively simple Ruby mixin that will wrap a call to a given service in a circuit breaker pattern. The circuit starts off "closed" meaning that all calls will go through. However, consecutive failures are recorded and after a threshold is reached, the circuit will "trip", setting the circuit into an "open" state. In an "open" state, every call to the service will fail by raising CircuitBrokenException. The circuit will remain in an "open" state until the failure timeout has elapsed. After the failure_timeout has elapsed, the circuit will go into a "half open" state and the call will go through. A failure will immediately pop the circuit open again, and a success will close the circuit and reset the failure count. require 'circuit_breaker' class TestService include CircuitBreaker def call_remote_service() ... circuit_method :call_remote_service # Optional circuit_handler do |handler| handler.logger = Logger.new(STDOUT) handler.failure_threshold = 5 handler.failure_timeout = 5 end # Optional circuit_handler_class MyCustomCircuitHandler end

Rubygem circuit_breaker

Total Downloads
7952
Releases
4
Current Version
1.1.1
Released
2014-03-06 00:00:00 UTC
First Release
2009-07-13 07:00:00 UTC
Depends on following gems
Depending Gems
0

Github wsargent/circuit_breaker

Watchers
87
Forks
7
Development activity
Inactive
Last commit
2013-04-19 00:44:06 UTC
First commit
Top contributors
Contributors
5
Issues

Resources

There are no resources yet, be the first to submit one!

Comments

There are no comments yet, be the first to write one!

Post a comment

Markdown supported
or
×

In order to continue, you must be signed in using your Github account.

If you're signing in using this account for the first time Github will ask for your permission to give access to your public user data to the Ruby Toolbox.

Although the Github Authorization page does not mention it, the request includes read-only access to your verified email address (user:email OAuth scope). This is neccessary so there's a way to notify you about comments, information about your accepted project edits and the like. You can review your notification settings on your account page once you're signed in.