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
-
#process_locking_error(error) ⇒ Object
override for custom processing.
- #with_redlock(args = [], &block) ⇒ Object
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? = { params: args, lock_with_params: self.class.lock_with_params?, } [:expires_in] = self.class.job_timeout unless self.class.job_timeout.nil? ::SimpleMutex::SidekiqSupport::JobWrapper.new(self, **).with_redlock(&block) rescue SimpleMutex::Mutex::LockError => error process_locking_error(error) end |