Sha256: 15deb65b9649efd25a783d6a9b8fff50a648cae5a3d9592e4d1006cfd4fd249b

Contents?: true

Size: 1.25 KB

Versions: 61

Compression:

Stored size: 1.25 KB

Contents

# frozen_string_literal: true

module SidekiqUniqueJobs
  # Utility module to help manage unique keys in redis.
  # Useful for deleting keys that for whatever reason wasn't deleted
  #
  # @author Mikael Henriksson <mikael@mhenrixon.com>
  module Unlockable
    module_function

    # Unlocks a job.
    # @param [Hash] item a Sidekiq job hash
    def unlock(item)
      SidekiqUniqueJobs::Job.add_digest(item)
      SidekiqUniqueJobs::Locksmith.new(item).unlock
    end

    # Unlocks a job.
    # @param [Hash] item a Sidekiq job hash
    def unlock!(item)
      SidekiqUniqueJobs::Job.add_digest(item)
      SidekiqUniqueJobs::Locksmith.new(item).unlock!
    end

    # Deletes a lock unless it has ttl
    #
    # This is good for situations when a job is locked by another item
    # @param [Hash] item a Sidekiq job hash
    def delete(item)
      SidekiqUniqueJobs::Job.add_digest(item)
      SidekiqUniqueJobs::Locksmith.new(item).delete
    end

    # Deletes a lock regardless of if it was locked or has ttl.
    #
    # This is good for situations when a job is locked by another item
    # @param [Hash] item a Sidekiq job hash
    def delete!(item)
      SidekiqUniqueJobs::Job.add_digest(item)
      SidekiqUniqueJobs::Locksmith.new(item).delete!
    end
  end
end

Version data entries

61 entries across 61 versions & 1 rubygems

Version Path
sidekiq-unique-jobs-8.0.10 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-7.1.33 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-7.1.32 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-8.0.9 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-8.0.8 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-8.0.7 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-8.0.6 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-7.1.31 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-8.0.5 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-8.0.4 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-7.1.30 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-8.0.3 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-8.0.2 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-8.0.1 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-8.0.0 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-7.1.29 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-7.1.28 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-7.1.27 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-7.1.26 lib/sidekiq_unique_jobs/unlockable.rb
sidekiq-unique-jobs-7.1.25 lib/sidekiq_unique_jobs/unlockable.rb