Module: SidekiqUniqueJobs::Unlockable
- Included in:
- Sidekiq::Worker::ClassMethods, Lock::UntilExecuted
- Defined in:
- lib/sidekiq_unique_jobs/unlockable.rb
Class Method Summary collapse
- .after_unlock(result, calling_method) ⇒ Object
- .logger ⇒ Object
- .unlock(item) ⇒ Object
- .unlock_by_arguments(_worker_class, _unique_arguments = {}) ⇒ Object
- .unlock_by_jid(jid, redis_pool = nil) ⇒ Object
- .unlock_by_key(unique_key, jid, redis_pool = nil) ⇒ Object
Class Method Details
.after_unlock(result, calling_method) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/sidekiq_unique_jobs/unlockable.rb', line 27 def after_unlock(result, calling_method) case result when 1 logger.debug { "successfully unlocked #{unique_key}" } true when 0 logger.debug { "expiring lock #{unique_key} is not owned by #{jid}" } false when -1 logger.debug { "#{unique_key} is not a known key" } false else fail "#{calling_method} returned an unexpected value (#{result})" end end |
.logger ⇒ Object
43 44 45 |
# File 'lib/sidekiq_unique_jobs/unlockable.rb', line 43 def logger Sidekiq.logger end |
.unlock(item) ⇒ Object
5 6 7 |
# File 'lib/sidekiq_unique_jobs/unlockable.rb', line 5 def unlock(item) unlock_by_key(item[UNIQUE_DIGEST_KEY], item[JID_KEY]) end |
.unlock_by_arguments(_worker_class, _unique_arguments = {}) ⇒ Object
21 22 23 24 25 |
# File 'lib/sidekiq_unique_jobs/unlockable.rb', line 21 def unlock_by_arguments(_worker_class, _unique_arguments = {}) Scripts.call(:release_lock, redis_pool, keys: [unique_key], argv: [jid]) do |result| after_unlock(result, __method__) end end |
.unlock_by_jid(jid, redis_pool = nil) ⇒ Object
15 16 17 18 19 |
# File 'lib/sidekiq_unique_jobs/unlockable.rb', line 15 def unlock_by_jid(jid, redis_pool = nil) Scripts.call(:release_lock, redis_pool, keys: [unique_key], argv: [jid]) do |result| after_unlock(result, __method__) end end |
.unlock_by_key(unique_key, jid, redis_pool = nil) ⇒ Object
9 10 11 12 13 |
# File 'lib/sidekiq_unique_jobs/unlockable.rb', line 9 def unlock_by_key(unique_key, jid, redis_pool = nil) Scripts.call(:release_lock, redis_pool, keys: [unique_key], argv: [jid]) do |result| after_unlock(result, __method__) end end |