module SidekiqUniqueJobs::Middleware

Provides the sidekiq middleware that makes the gem work

@author Mikael Henriksson <mikael@mhenrixon.com>

Attributes

item[R]

The sidekiq job hash @return [Hash] the Sidekiq job hash

Public Instance Methods

call(worker_class, item, queue, redis_pool = nil) { || ... } click to toggle source

This method runs before (prepended) the actual middleware implementation.

This is done to reduce duplication

@param [Sidekiq::Worker] worker_class @param [Hash] item a sidekiq job hash @param [String] queue name of the queue @param [ConnectionPool] redis_pool only used for compatility reasons

@return [yield<super>] <description>

@yieldparam [<type>] if <description> @yieldreturn [<type>] <describe what yield should return>

Calls superclass method
# File lib/sidekiq_unique_jobs/middleware.rb, line 31
def call(worker_class, item, queue, redis_pool = nil)
  @worker_class = worker_class
  @item         = item
  @queue        = queue
  @redis_pool   = redis_pool
  return yield if unique_disabled?

  SidekiqUniqueJobs::Job.prepare(item) unless item[LOCK_DIGEST]

  with_logging_context do
    super
  end
end