Module: SimpleMutex::SidekiqSupport::JobMixin

Defined in:
lib/simple_mutex/sidekiq_support/job_mixin.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



6
7
8
# File 'lib/simple_mutex/sidekiq_support/job_mixin.rb', line 6

def self.included(klass)
  klass.extend(ClassMethods)
end

Instance Method Details

#process_locking_error(error) ⇒ Object

override for custom processing



60
61
62
# File 'lib/simple_mutex/sidekiq_support/job_mixin.rb', line 60

def process_locking_error(error)
  raise error unless self.class.skip_locking_error?
end

#with_redlock(args = [], &block) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/simple_mutex/sidekiq_support/job_mixin.rb', line 44

def with_redlock(args = [], &block)
  return yield unless self.class.locking?

  options = {
    params:           args,
    lock_with_params: self.class.lock_with_params?,
  }

  options[:expires_in] = self.class.job_timeout unless self.class.job_timeout.nil?

  ::SimpleMutex::SidekiqSupport::JobWrapper.new(self, **options).with_redlock(&block)
rescue SimpleMutex::Mutex::LockError => error
  process_locking_error(error)
end