module Que::Locks::JobExtensions
Attributes
exclusive_execution_lock[RW]
Public Instance Methods
enqueue(*args, queue: nil, priority: nil, run_at: nil, job_class: nil, tags: nil, **arg_opts)
click to toggle source
Calls superclass method
# File lib/que/locks/job_extensions.rb, line 12 def enqueue(*args, queue: nil, priority: nil, run_at: nil, job_class: nil, tags: nil, **arg_opts) if self.exclusive_execution_lock args_list = args.clone args_list << arg_opts if arg_opts.any? if Que::Locks::ExecutionLock.already_enqueued_job_wanting_lock?(self, args_list) Que.log(level: :info, event: :skipped_enqueue_due_to_preemptive_lock_check, args: args_list) else super end else super end end
lock_available?(*args, queue: nil, priority: nil, run_at: nil, job_class: nil, tags: nil, **arg_opts)
click to toggle source
# File lib/que/locks/job_extensions.rb, line 5 def lock_available?(*args, queue: nil, priority: nil, run_at: nil, job_class: nil, tags: nil, **arg_opts) # rubocop:disable Lint/UnusedMethodArgument args << arg_opts if arg_opts.any? return true unless self.exclusive_execution_lock return false if Que::Locks::ExecutionLock.already_enqueued_job_wanting_lock?(self, args) return Que::Locks::ExecutionLock.can_aquire?(self, args) end