module Sidekiq::LockableJob::LockService

Constants

REDIS_PREFIX_KEY

Public Class Methods

handle_locked_by(keys, worker_instance:, job:) click to toggle source
# File lib/sidekiq/lockable_job/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/lock_service.rb, line 9
def self.lock(key)
  redis.set(redis_key(key), Time.now.to_i)
end
locked?(key) click to toggle source
# File lib/sidekiq/lockable_job/lock_service.rb, line 17
def self.locked?(key)
  redis.exists(redis_key(key))
end
redis() click to toggle source
# File lib/sidekiq/lockable_job/lock_service.rb, line 34
def self.redis
  $redis
end
redis_key(key) click to toggle source
# File lib/sidekiq/lockable_job/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/lock_service.rb, line 13
def self.unlock(key)
  redis.del(redis_key(key))
end