class Sidekiq::Congestion::Request

Attributes

args[RW]
options[RW]
worker[RW]

Public Class Methods

new(worker, job, queue) click to toggle source
# File lib/sidekiq/congestion/request.rb, line 13
def initialize(worker, job, queue)
  self.worker = worker
  self.args = job['args']
  opts = worker.sidekiq_options_hash || { }
  self.options = opts['congestion']
end

Public Instance Methods

congestion() click to toggle source
# File lib/sidekiq/congestion/request.rb, line 43
def congestion
  @congestion ||= ::Congestion.request key, options
end
enabled?() click to toggle source
# File lib/sidekiq/congestion/request.rb, line 20
def enabled?
  !!options && _enabled?
end
key() click to toggle source
# File lib/sidekiq/congestion/request.rb, line 32
def key
  @key ||= case options[:key]
  when Proc
    options[:key].call *args
  when String, Symbol
    options[:key].to_s
  else
    worker.class.name
  end
end
reschedule!() click to toggle source
# File lib/sidekiq/congestion/request.rb, line 28
def reschedule!
  worker.class.perform_in backoff, *args
end
reschedule?() click to toggle source
# File lib/sidekiq/congestion/request.rb, line 24
def reschedule?
  rejection_method == :reschedule
end

Protected Instance Methods

_enabled?() click to toggle source
# File lib/sidekiq/congestion/request.rb, line 49
def _enabled?
  case options[:enabled]
  when Proc
    options[:enabled].call *args
  when nil
    true
  else
    !!options[:enabled]
  end
end
rejection_method() click to toggle source
# File lib/sidekiq/congestion/request.rb, line 60
def rejection_method
  options.fetch(:reject_with, :reschedule).to_sym
end