class DCA::Jobs::Job

Attributes

options[R]

Public Class Methods

create(options={}) click to toggle source

Add a job to queue. Queue name is a class module name

# File lib/dca/jobs/job.rb, line 14
def self.create(options={})
  Resque.enqueue(self, options)
end
new(options = {}) click to toggle source
# File lib/dca/jobs/job.rb, line 24
def initialize(options = {})
  @options = options

  trap('QUIT') { shutdown }
end
perform(options={}) click to toggle source
# File lib/dca/jobs/job.rb, line 18
def self.perform(options={})
  instance = new options.symbolize_keys!
  instance.safe_perform!
  instance
end
queue() click to toggle source
# File lib/dca/jobs/job.rb, line 9
def self.queue
  self.to_s.split("::")[-2]
end

Public Instance Methods

destroy() click to toggle source
# File lib/dca/jobs/job.rb, line 47
def destroy

end
perform() click to toggle source
# File lib/dca/jobs/job.rb, line 43
def perform
  raise NotImplementedError
end
safe_perform!() click to toggle source
# File lib/dca/jobs/job.rb, line 30
def safe_perform!
  perform
  on_success if respond_to?(:on_success)
rescue Exception => exception
  if respond_to?(:on_failure)
    on_failure(exception)
  else
    raise exception
  end
ensure
  destroy
end
shutdown?() click to toggle source
# File lib/dca/jobs/job.rb, line 51
def shutdown?
  @shutdown
end

Private Instance Methods

shutdown() click to toggle source
# File lib/dca/jobs/job.rb, line 57
def shutdown
  @shutdown = true
end