Class: Sidekiq::LockableJob::Middleware::Server::UnsetLocks

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq/lockable_job/middleware/server/unset_locks.rb

Instance Method Summary collapse

Instance Method Details

#call(worker, job, queue) { ... } ⇒ Void

Parameters:

Yields:

  • the next middleware in the chain or worker ‘perform` method

Returns:

  • (Void)


14
15
16
17
18
19
20
21
22
23
24
# File 'lib/sidekiq/lockable_job/middleware/server/unset_locks.rb', line 14

def call(worker, job, queue)
  yield
  worker_klass = worker.class
  if worker_klass.respond_to?(:lockable_job_unlock_keys)
    keys = worker_klass.send(:lockable_job_unlock_keys, job['args'])
    keys = [keys] unless keys.nil? || keys.is_a?(Array)
    keys&.compact&.each do |key|
      worker_klass.current_lockable_job_lock_service.unlock(key)
    end
  end
end