class ActiveJob::Cancel::QueueAdapters::DelayedJobAdapter

Public Instance Methods

cancel(job_id, queue_name) click to toggle source
# File lib/active_job/cancel/queue_adapters/delayed_job_adapter.rb, line 8
def cancel(job_id, queue_name)
  queue_name = queue_name.call if queue_name.is_a?(Proc)
  job = find_job(job_id, queue_name)
  if job
    job.destroy
    return true
  end
  false
end
cancel_by(opts, _queue_name) click to toggle source
# File lib/active_job/cancel/queue_adapters/delayed_job_adapter.rb, line 18
def cancel_by(opts, _queue_name)
  raise ArgumentError, 'Please specify ":provider_job_id"' unless opts[:provider_job_id]
  job_id = opts[:provider_job_id]

  job = Delayed::Job.find_by(id: job_id)
  if job
    job.destroy
    return true
  end
  false
end

Private Instance Methods

find_job(job_id, queue_name) click to toggle source
# File lib/active_job/cancel/queue_adapters/delayed_job_adapter.rb, line 31
def find_job(job_id, queue_name)
  Delayed::Job.where('handler LIKE ?', "%job_id: #{job_id}%").where(queue: queue_name).first
end