module ActiveJob::Uniqueness::Strategies::Base::LockingOnEnqueue

Public Instance Methods

around_enqueue(block) click to toggle source
# File lib/active_job/uniqueness/strategies/base.rb, line 65
def around_enqueue(block)
  return if @job_aborted # ActiveJob 4.2 workaround

  enqueued = false

  block.call

  enqueued = true
ensure
  unlock(resource: lock_key) unless @job_aborted || enqueued
end
before_enqueue() click to toggle source
# File lib/active_job/uniqueness/strategies/base.rb, line 58
def before_enqueue
  return if lock(resource: lock_key, ttl: lock_ttl)

  handle_conflict(resource: lock_key, on_conflict: on_conflict)
  abort_job
end