module ActiveJob::Cancel::ClassMethods

Public Instance Methods

can_cancel?() click to toggle source
# File lib/active_job/cancel.rb, line 38
def can_cancel?
  SUPPORTED_ADAPTERS.include?(adapter_name)
end
cancel(job_id) click to toggle source
# File lib/active_job/cancel.rb, line 22
def cancel(job_id)
  if can_cancel?
    cancel_adapter_class.new.cancel(job_id, self.new.queue_name)
  else
    raise NotImplementedError, 'This queueing backend does not support cancel.'
  end
end
cancel_adapter_class() click to toggle source
# File lib/active_job/cancel.rb, line 42
def cancel_adapter_class
  Object.const_get("ActiveJob::Cancel::QueueAdapters::#{adapter_name}Adapter")
end
cancel_by(opts) click to toggle source
# File lib/active_job/cancel.rb, line 30
def cancel_by(opts)
  if can_cancel?
    cancel_adapter_class.new.cancel_by(opts, self.new.queue_name)
  else
    raise NotImplementedError, 'This queueing backend does not support cancel_by.'
  end
end

Private Instance Methods

adapter_name() click to toggle source
# File lib/active_job/cancel.rb, line 47
def adapter_name
  if ActiveJob.version > Gem::Version.new('4.3')
    self.queue_adapter.class.name.demodulize.chomp('Adapter')
  else
    self.queue_adapter.name.demodulize.chomp('Adapter')
  end
end