module SidekiqUniqueJobs::OptionsWithFallback

def self.included(base)

def self.included(base)
  base.send(:include, SidekiqUniqueJobs::SidekiqWorkerMethods)
end

def lock_class

Returns:
  • (Class) -
def lock_class
  @lock_class ||= locks.fetch(lock_type.to_sym) do
    raise UnknownLock, "No implementation for `lock: :#{lock_type}`"
  end
end

def lock_instance

Returns:
  • (Lock::BaseLock) - an instance of a lock implementation
def lock_instance
  @lock_instance ||= lock_class.new(item, after_unlock_hook, @redis_pool)
end

def lock_type

Returns:
  • (Symbol) -
def lock_type
  @lock_type ||= options[LOCK] || item[LOCK]
end

def locks

A convenience method for using the configured locks
def locks
  SidekiqUniqueJobs.locks
end

def options

Returns:
  • (Hash) -
def options
  @options ||= begin
    opts = default_worker_options.dup
    opts.merge!(worker_options) if sidekiq_worker_class?
    (opts || {}).stringify_keys
  end
end

def unique_disabled?

Check if unique has been disabled
def unique_disabled?
  !unique_enabled?
end

def unique_enabled?

Returns:
  • (true, false) - indicate if the gem has been enabled
def unique_enabled?
  SidekiqUniqueJobs.enabled? && lock_type
end