class Sidekiq::CircuitBreaker::Middleware::Server
Public Instance Methods
call(worker, msg, queue) { || ... }
click to toggle source
# File lib/sidekiq/circuit_breaker/middleware/server.rb, line 9 def call(worker, msg, queue) circuit_breaker_enabled = worker.class.respond_to?(:sidekiq_circuit_breaker_enabled?) return yield unless circuit_breaker_enabled options = worker.class.sidekiq_circuit_breaker_options scope = extract_scope(worker.class.name, msg, options) manager = Manager.new(scope, options) resquedule_job(worker, msg) and return if manager.open? begin yield rescue => e manager.evaluate_failure raise e end manager.register_success end
resquedule_job(worker, msg)
click to toggle source
# File lib/sidekiq/circuit_breaker/middleware/server.rb, line 28 def resquedule_job(worker, msg) Sidekiq::Client.push( 'class' => worker.class.name, 'args' => msg['args'] ) end