Class: Sidekiq::LockableJob::Middleware::Client::SetLocks
- Inherits:
-
Object
- Object
- Sidekiq::LockableJob::Middleware::Client::SetLocks
- Defined in:
- lib/sidekiq/lockable_job/middleware/client/set_locks.rb
Instance Method Summary collapse
-
#call(worker_class, job, queue, redis_pool) { ... } ⇒ Hash, ...
If false or nil is returned, the job is not to be enqueued into redis, otherwise the block’s return value is returned.
Instance Method Details
#call(worker_class, job, queue, redis_pool) { ... } ⇒ Hash, ...
If false or nil is returned, the job is not to be enqueued into redis, otherwise the block’s return value is returned
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/sidekiq/lockable_job/middleware/client/set_locks.rb', line 17 def call(worker_class, job, queue, redis_pool) worker_klass = worker_class.is_a?(String) ? worker_class.constantize : worker_class if worker_klass.respond_to?(:lockable_job_client_lock_keys) keys = worker_klass.send(:lockable_job_client_lock_keys, job['args']) keys = [keys] unless keys.nil? || keys.is_a?(Array) keys&.compact&.each do |key| worker_klass.current_lockable_job_lock_service.lock(key) end end yield end |