module Sidekiq::LockableJob::MultiLockService
Constants
- REDIS_PREFIX_KEY
Public Class Methods
handle_locked_by(keys, worker_instance:, job:)
click to toggle source
# File lib/sidekiq/lockable_job/multi_lock_service.rb, line 21 def self.handle_locked_by(keys, worker_instance:, job:) keys = [keys] unless keys.nil? || keys.is_a?(Array) keys&.each do |key| raise LockedJobError.new("Locked by #{key}") if locked?(key) end # job is not locked and should be processed false end
lock(key)
click to toggle source
# File lib/sidekiq/lockable_job/multi_lock_service.rb, line 9 def self.lock(key) redis.incr(redis_key(key)) end
locked?(key)
click to toggle source
# File lib/sidekiq/lockable_job/multi_lock_service.rb, line 17 def self.locked?(key) (redis.get(redis_key(key))&.to_i || 0) > 0 end
redis()
click to toggle source
# File lib/sidekiq/lockable_job/multi_lock_service.rb, line 34 def self.redis $redis end
redis_key(key)
click to toggle source
# File lib/sidekiq/lockable_job/multi_lock_service.rb, line 30 def self.redis_key(key) "#{REDIS_PREFIX_KEY}:#{key}" end
unlock(key)
click to toggle source
# File lib/sidekiq/lockable_job/multi_lock_service.rb, line 13 def self.unlock(key) redis.decr(redis_key(key)) end