class SimpleMutex::SidekiqSupport::JobWrapper
Constants
- DEFAULT_EXPIRES_IN
Attributes
expires_in[RW]
job[RW]
lock_key[RW]
lock_with_params[RW]
params[RW]
Public Class Methods
new(job, params: [], lock_key: nil, lock_with_params: false, expires_in: DEFAULT_EXPIRES_IN)
click to toggle source
# File lib/simple_mutex/sidekiq_support/job_wrapper.rb, line 10 def initialize(job, params: [], lock_key: nil, lock_with_params: false, expires_in: DEFAULT_EXPIRES_IN) self.job = job self.params = params self.lock_key = lock_key self.lock_with_params = lock_with_params self.expires_in = expires_in end
Public Instance Methods
with_redlock(&block)
click to toggle source
# File lib/simple_mutex/sidekiq_support/job_wrapper.rb, line 23 def with_redlock(&block) ::SimpleMutex::Mutex.with_lock( lock_key || generate_lock_key, expires_in: expires_in, payload: generate_payload, &block ) end
Private Instance Methods
generate_lock_key()
click to toggle source
# File lib/simple_mutex/sidekiq_support/job_wrapper.rb, line 36 def generate_lock_key key = if lock_with_params "#{job.class.name}<#{params.to_json}>" else job.class.name end key.tr(":", "_") end
generate_payload()
click to toggle source
# File lib/simple_mutex/sidekiq_support/job_wrapper.rb, line 45 def generate_payload { "type" => "Job", "started_at" => Time.now.to_s, "jid" => job.jid } end