Class: VertxCircuitBreaker::CircuitBreaker
- Inherits:
-
Object
- Object
- VertxCircuitBreaker::CircuitBreaker
- Defined in:
- /Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb
Overview
Constant Summary
- @@j_api_type =
Object.new
Class Method Summary (collapse)
- + (Boolean) accept?(obj)
-
+ (::VertxCircuitBreaker::CircuitBreaker) create(name = nil, vertx = nil, options = nil)
Creates a new instance of CircuitBreaker.
- + (Object) j_api_type
- + (Object) j_class
- + (Object) unwrap(obj)
- + (Object) wrap(obj)
Instance Method Summary (collapse)
-
- (self) close
Closes the circuit breaker.
-
- (self) close_handler { ... }
Sets a invoked when the circuit breaker state switches to close.
-
- (::Vertx::Future) execute { ... }
Same as #execute_with_fallback but using the circuit breaker default fallback.
-
- (self) execute_and_report(resultFuture = nil) { ... }
Same as #execute_and_report_with_fallback but using the circuit breaker default fallback.
-
- (self) execute_and_report_with_fallback(resultFuture = nil, command = nil, fallback = nil) { ... }
Executes the given operation with the circuit breaker control.
-
- (::Vertx::Future) execute_with_fallback(command = nil, fallback = nil) { ... }
Executes the given operation with the circuit breaker control.
-
- (Fixnum) failure_count
The current number of failures.
-
- (self) fallback(handler = nil) { ... }
Sets a default invoked when the bridge is open to handle the "request", or on failure if Hash#is_fallback_on_failure is enabled.
-
- (self) half_open_handler { ... }
Sets a invoked when the circuit breaker state switches to half-open.
-
- (String) name
The name of the circuit breaker.
-
- (self) open
Explicitly opens the circuit.
-
- (self) open_handler { ... }
Sets a invoked when the circuit breaker state switches to open.
-
- (self) reset
Resets the circuit breaker state (number of failure set to 0 and state set to closed).
-
- (:OPEN, ...) state
The current state.
Class Method Details
+ (Boolean) accept?(obj)
19 20 21 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 19 def @@j_api_type.accept?(obj) obj.class == CircuitBreaker end |
+ (::VertxCircuitBreaker::CircuitBreaker) create(name = nil, vertx = nil, options = nil)
39 40 41 42 43 44 45 46 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 39 def self.create(name=nil,vertx=nil,=nil) if name.class == String && vertx.class.method_defined?(:j_del) && !block_given? && == nil return ::Vertx::Util::Utils.safe_create(Java::IoVertxCircuitbreaker::CircuitBreaker.java_method(:create, [Java::java.lang.String.java_class,Java::IoVertxCore::Vertx.java_class]).call(name,vertx.j_del),::VertxCircuitBreaker::CircuitBreaker) elsif name.class == String && vertx.class.method_defined?(:j_del) && .class == Hash && !block_given? return ::Vertx::Util::Utils.safe_create(Java::IoVertxCircuitbreaker::CircuitBreaker.java_method(:create, [Java::java.lang.String.java_class,Java::IoVertxCore::Vertx.java_class,Java::IoVertxCircuitbreaker::CircuitBreakerOptions.java_class]).call(name,vertx.j_del,Java::IoVertxCircuitbreaker::CircuitBreakerOptions.new(::Vertx::Util::Utils.to_json_object())),::VertxCircuitBreaker::CircuitBreaker) end raise ArgumentError, "Invalid arguments when calling create(#{name},#{vertx},#{})" end |
+ (Object) j_api_type
28 29 30 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 28 def self.j_api_type @@j_api_type end |
+ (Object) j_class
31 32 33 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 31 def self.j_class Java::IoVertxCircuitbreaker::CircuitBreaker.java_class end |
+ (Object) unwrap(obj)
25 26 27 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 25 def @@j_api_type.unwrap(obj) obj.j_del end |
+ (Object) wrap(obj)
22 23 24 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 22 def @@j_api_type.wrap(obj) CircuitBreaker.new(obj) end |
Instance Method Details
- (self) close
close
state of the circuit breaker. To set the circuit breaker in the
close
state, use #reset.
51 52 53 54 55 56 57 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 51 def close if !block_given? @j_del.java_method(:close, []).call() return self end raise ArgumentError, "Invalid arguments when calling close()" end |
- (self) close_handler { ... }
81 82 83 84 85 86 87 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 81 def close_handler if block_given? @j_del.java_method(:closeHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield }) return self end raise ArgumentError, "Invalid arguments when calling close_handler()" end |
- (::Vertx::Future) execute { ... }
112 113 114 115 116 117 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 112 def execute if block_given? return ::Vertx::Util::Utils.safe_create(@j_del.java_method(:execute, [Java::IoVertxCore::Handler.java_class]).call((Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::Future, nil)) })),::Vertx::Future, nil) end raise ArgumentError, "Invalid arguments when calling execute()" end |
- (self) execute_and_report(resultFuture = nil) { ... }
123 124 125 126 127 128 129 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 123 def execute_and_report(resultFuture=nil) if resultFuture.class.method_defined?(:j_del) && block_given? @j_del.java_method(:executeAndReport, [Java::IoVertxCore::Future.java_class,Java::IoVertxCore::Handler.java_class]).call(resultFuture.j_del,(Proc.new { |event| yield(::Vertx::Util::Utils.safe_create(event,::Vertx::Future, nil)) })) return self end raise ArgumentError, "Invalid arguments when calling execute_and_report(#{resultFuture})" end |
- (self) execute_and_report_with_fallback(resultFuture = nil, command = nil, fallback = nil) { ... }
The operation is not invoked if the circuit breaker is open, and the given fallback is called immediately. The circuit breaker also monitor the completion of the operation before a configure timeout. The operation is considered as failed if it does not terminate in time.
Unlike #execute_with_fallback, this method does return a object, but let the caller pass a object on which the result is reported. If the fallback is called, the future is successfully completed with the value returned by the fallback function. If the fallback throws an exception, the future is marked as failed.
147 148 149 150 151 152 153 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 147 def execute_and_report_with_fallback(resultFuture=nil,command=nil,fallback=nil) if resultFuture.class.method_defined?(:j_del) && command.class == Proc && block_given? && fallback == nil @j_del.java_method(:executeAndReportWithFallback, [Java::IoVertxCore::Future.java_class,Java::IoVertxCore::Handler.java_class,Java::JavaUtilFunction::Function.java_class]).call(resultFuture.j_del,(Proc.new { |event| command.call(::Vertx::Util::Utils.safe_create(event,::Vertx::Future, nil)) }),(Proc.new { |event| ::Vertx::Util::Utils.to_object(yield(::Vertx::Util::Utils.from_throwable(event))) })) return self end raise ArgumentError, "Invalid arguments when calling execute_and_report_with_fallback(#{resultFuture},#{command},#{fallback})" end |
- (::Vertx::Future) execute_with_fallback(command = nil, fallback = nil) { ... }
The operation is not invoked if the circuit breaker is open, and the given fallback is called immediately. The circuit breaker also monitor the completion of the operation before a configure timeout. The operation is considered as failed if it does not terminate in time.
This method returns a object to retrieve the status and result of the operation, with the status being a success or a failure. If the fallback is called, the returned future is successfully completed with the value returned from the fallback. If the fallback throws an exception, the returned future is marked as failed.
103 104 105 106 107 108 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 103 def execute_with_fallback(command=nil,fallback=nil) if command.class == Proc && block_given? && fallback == nil return ::Vertx::Util::Utils.safe_create(@j_del.java_method(:executeWithFallback, [Java::IoVertxCore::Handler.java_class,Java::JavaUtilFunction::Function.java_class]).call((Proc.new { |event| command.call(::Vertx::Util::Utils.safe_create(event,::Vertx::Future, nil)) }),(Proc.new { |event| ::Vertx::Util::Utils.to_object(yield(::Vertx::Util::Utils.from_throwable(event))) })),::Vertx::Future, nil) end raise ArgumentError, "Invalid arguments when calling execute_with_fallback(#{command},#{fallback})" end |
- (Fixnum) failure_count
193 194 195 196 197 198 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 193 def failure_count if !block_given? return @j_del.java_method(:failureCount, []).call() end raise ArgumentError, "Invalid arguments when calling failure_count()" end |
- (self) fallback(handler = nil) { ... }
The function gets the exception as parameter and returns the fallback result.
160 161 162 163 164 165 166 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 160 def fallback(handler=nil) if block_given? && handler == nil @j_del.java_method(:fallback, [Java::JavaUtilFunction::Function.java_class]).call((Proc.new { |event| ::Vertx::Util::Utils.to_object(yield(::Vertx::Util::Utils.from_throwable(event))) })) return self end raise ArgumentError, "Invalid arguments when calling fallback(#{handler})" end |
- (self) half_open_handler { ... }
71 72 73 74 75 76 77 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 71 def half_open_handler if block_given? @j_del.java_method(:halfOpenHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield }) return self end raise ArgumentError, "Invalid arguments when calling half_open_handler()" end |
- (String) name
200 201 202 203 204 205 206 207 208 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 200 def name if !block_given? if @cached_name != nil return @cached_name end return @cached_name = @j_del.java_method(:name, []).call() end raise ArgumentError, "Invalid arguments when calling name()" end |
- (self) open
178 179 180 181 182 183 184 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 178 def open if !block_given? @j_del.java_method(:open, []).call() return self end raise ArgumentError, "Invalid arguments when calling open()" end |
- (self) open_handler { ... }
61 62 63 64 65 66 67 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 61 def open_handler if block_given? @j_del.java_method(:openHandler, [Java::IoVertxCore::Handler.java_class]).call(Proc.new { yield }) return self end raise ArgumentError, "Invalid arguments when calling open_handler()" end |
- (self) reset
169 170 171 172 173 174 175 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 169 def reset if !block_given? @j_del.java_method(:reset, []).call() return self end raise ArgumentError, "Invalid arguments when calling reset()" end |
- (:OPEN, ...) state
186 187 188 189 190 191 |
# File '/Users/julien/java/vertx-stack/stack-docs/target/rb/vertx-circuit-breaker/circuit_breaker.rb', line 186 def state if !block_given? return @j_del.java_method(:state, []).call().name.intern end raise ArgumentError, "Invalid arguments when calling state()" end |