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
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)
- 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