Sha256: 6d605753f883dedc5450984b55f33991a065e4fb898ca092ba08e0f83993545b

Contents?: true

Size: 1.2 KB

Versions: 8

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

module SidekiqUniqueJobs
  # Utility class to append uniqueness to the sidekiq job hash
  #
  # @author Mikael Henriksson <mikael@zoolutions.se>
  module Job
    extend self

    # Adds timeout, expiration, lock_args, lock_prefix and lock_digest to the sidekiq job hash
    # @return [Hash] the job hash
    def prepare(item)
      add_lock_timeout(item)
      add_lock_ttl(item)
      add_digest(item)
    end

    # Adds lock_args, lock_prefix and lock_digest to the sidekiq job hash
    # @return [Hash] the job hash
    def add_digest(item)
      add_lock_prefix(item)
      add_lock_args(item)
      add_lock_digest(item)

      item
    end

    private

    def add_lock_ttl(item)
      item[LOCK_TTL] = SidekiqUniqueJobs::LockTTL.calculate(item)
    end

    def add_lock_timeout(item)
      item[LOCK_TIMEOUT] = SidekiqUniqueJobs::LockTimeout.calculate(item)
    end

    def add_lock_args(item)
      item[LOCK_ARGS] = SidekiqUniqueJobs::LockArgs.call(item)
    end

    def add_lock_digest(item)
      item[LOCK_DIGEST] = SidekiqUniqueJobs::LockDigest.call(item)
    end

    def add_lock_prefix(item)
      item[LOCK_PREFIX] = SidekiqUniqueJobs.config.unique_prefix
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
sidekiq-unique-jobs-7.0.0.beta17 lib/sidekiq_unique_jobs/job.rb
sidekiq-unique-jobs-7.0.0.beta16 lib/sidekiq_unique_jobs/job.rb
sidekiq-unique-jobs-7.0.0.beta15 lib/sidekiq_unique_jobs/job.rb
sidekiq-unique-jobs-7.0.0.beta14 lib/sidekiq_unique_jobs/job.rb
sidekiq-unique-jobs-7.0.0.beta13 lib/sidekiq_unique_jobs/job.rb
sidekiq-unique-jobs-7.0.0.beta12 lib/sidekiq_unique_jobs/job.rb
sidekiq-unique-jobs-7.0.0.beta11 lib/sidekiq_unique_jobs/job.rb
sidekiq-unique-jobs-7.0.0.beta10 lib/sidekiq_unique_jobs/job.rb