module SidekiqUniqueJobs::Middleware

def self.configure


Configure both server and client
def self.configure
  configure_server
  configure_client
end

def self.configure_client


Configures the Sidekiq client
def self.configure_client
  Sidekiq.configure_client do |config|
    config.client_middleware do |chain|
      chain.add SidekiqUniqueJobs::Middleware::Client
    end
  end
end

def self.configure_server # rubocop:disable Metrics/MethodLength

rubocop:disable Metrics/MethodLength

Configures the Sidekiq server
def self.configure_server # rubocop:disable Metrics/MethodLength
  Sidekiq.configure_server do |config|
    config.client_middleware do |chain|
      chain.add SidekiqUniqueJobs::Middleware::Client
    end
    config.server_middleware do |chain|
      chain.add SidekiqUniqueJobs::Middleware::Server
    end
    config.on(:startup) do
      SidekiqUniqueJobs::UpdateVersion.call
      SidekiqUniqueJobs::UpgradeLocks.call
      SidekiqUniqueJobs::Orphans::Manager.start
    end
    config.on(:shutdown) do
      SidekiqUniqueJobs::Orphans::Manager.stop
    end
  end
end

def call(worker_class, item, queue, redis_pool = nil)

Other tags:
    Yieldreturn: -

Other tags:
    Yieldparam: if -

Returns:
  • (yield) -

Parameters:
  • redis_pool (ConnectionPool) -- only used for compatility reasons
  • queue (String) -- name of the queue
  • item (Hash) -- a sidekiq job hash
  • worker_class (Sidekiq::Worker) --
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