Class: SidekiqUniqueJobs::Server::Middleware

Inherits:
Object
  • Object
show all
Includes:
Logging, OptionsWithFallback
Defined in:
lib/sidekiq_unique_jobs/server/middleware.rb

Overview

The unique sidekiq middleware for the server processor

Author:

Constant Summary

Constants included from OptionsWithFallback

OptionsWithFallback::LOCKS

Instance Method Summary collapse

Methods included from OptionsWithFallback

included, #lock, #lock_class, #lock_type, #log_duplicate_payload?, #options, #unique_disabled?, #unique_enabled?, #unique_type

Methods included from Logging

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger, #logging_context

Instance Method Details

#call(worker_class, item, queue) { ... } ⇒ Object

Runs the server middleware (used from Sidekiq::Processor#process)

Parameters:

  • worker_class (Sidekiq::Worker)
  • item (Hash)

    a sidekiq job hash

  • queue (String)

    name of the queue

Yields:

  • when uniqueness is disabled

  • when the lock is acquired

See Also:



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/sidekiq_unique_jobs/server/middleware.rb', line 25

def call(worker_class, item, queue)
  @worker_class = worker_class
  @item         = item
  @queue        = queue
  return yield if unique_disabled?

  SidekiqUniqueJobs::Job.add_uniqueness(item)
  SidekiqUniqueJobs.with_context(logging_context(self.class, item)) do
    lock.execute do
      yield
    end
  end
end