module SidekiqUniqueJobs::Job

Utility class to append uniqueness to the sidekiq job hash

@author Mikael Henriksson <mikael@mhenrixon.com>

Public Instance Methods

add_digest(item) click to toggle source

Adds lock_args, lock_prefix and lock_digest to the sidekiq job hash @return [Hash] the job hash

# File lib/sidekiq_unique_jobs/job.rb, line 21
def add_digest(item)
  add_lock_prefix(item)
  add_lock_args(item)
  add_lock_digest(item)

  item
end
prepare(item) click to toggle source

Adds timeout, expiration, lock_args, lock_prefix and lock_digest to the sidekiq job hash @return [Hash] the job hash

# File lib/sidekiq_unique_jobs/job.rb, line 12
def prepare(item)
  stringify_on_conflict_hash(item)
  add_lock_timeout(item)
  add_lock_ttl(item)
  add_digest(item)
end

Private Instance Methods

add_lock_args(item) click to toggle source
# File lib/sidekiq_unique_jobs/job.rb, line 46
def add_lock_args(item)
  item[LOCK_ARGS] ||= SidekiqUniqueJobs::LockArgs.call(item)
end
add_lock_digest(item) click to toggle source
# File lib/sidekiq_unique_jobs/job.rb, line 50
def add_lock_digest(item)
  item[LOCK_DIGEST] ||= SidekiqUniqueJobs::LockDigest.call(item)
end
add_lock_prefix(item) click to toggle source
# File lib/sidekiq_unique_jobs/job.rb, line 54
def add_lock_prefix(item)
  item[LOCK_PREFIX] ||= SidekiqUniqueJobs.config.lock_prefix
end
add_lock_timeout(item) click to toggle source
# File lib/sidekiq_unique_jobs/job.rb, line 42
def add_lock_timeout(item)
  item[LOCK_TIMEOUT] ||= SidekiqUniqueJobs::LockTimeout.calculate(item)
end
add_lock_ttl(item) click to toggle source
# File lib/sidekiq_unique_jobs/job.rb, line 38
def add_lock_ttl(item)
  item[LOCK_TTL] = SidekiqUniqueJobs::LockTTL.calculate(item)
end
stringify_on_conflict_hash(item) click to toggle source
# File lib/sidekiq_unique_jobs/job.rb, line 31
def stringify_on_conflict_hash(item)
  on_conflict = item[ON_CONFLICT]
  return unless on_conflict.is_a?(Hash)

  item[ON_CONFLICT] = on_conflict.deep_stringify_keys
end