Module: Que::Locks::JobExtensions
- Defined in:
- lib/que/locks/job_extensions.rb
Instance Attribute Summary collapse
-
#exclusive_execution_lock ⇒ Object
Returns the value of attribute exclusive_execution_lock.
Instance Method Summary collapse
- #enqueue(*args, queue: nil, priority: nil, run_at: nil, job_class: nil, tags: nil, **arg_opts) ⇒ Object
-
#lock_available?(*args, queue: nil, priority: nil, run_at: nil, job_class: nil, tags: nil, **arg_opts) ⇒ Boolean
rubocop:disable Lint/UnusedMethodArgument.
Instance Attribute Details
#exclusive_execution_lock ⇒ Object
Returns the value of attribute exclusive_execution_lock.
3 4 5 |
# File 'lib/que/locks/job_extensions.rb', line 3 def exclusive_execution_lock @exclusive_execution_lock end |
Instance Method Details
#enqueue(*args, queue: nil, priority: nil, run_at: nil, job_class: nil, tags: nil, **arg_opts) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# 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) ⇒ Boolean
rubocop:disable Lint/UnusedMethodArgument
5 6 7 8 9 10 |
# 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 |