class ActiveWorker::JobQueue::JobExecuter

Public Class Methods

execute_task_from_args(args) click to toggle source
# File lib/active_worker/job_queue/job_executer.rb, line 15
def self.execute_task_from_args(args)
  class_name = args["class_name"]
  method     = args["method"]
  params     = args["params"]

  klass = class_name.constantize
  klass.send(method,*params)

rescue Resque::TermException => e
  handle_termination(klass, params, e)
rescue SignalException => e
  handle_exception(e, method, params, klass)
  raise e
rescue Exception => e
  handle_exception(e, method, params, klass)
end
handle_exception(e, method, params, klass) click to toggle source
# File lib/active_worker/job_queue/job_executer.rb, line 32
def self.handle_exception(e, method, params, klass)
  log_error "Handling exception for #{klass} because #{e.message}"
  klass.handle_error e, method, params
rescue Exception => handle_error_error
  log_error "Handle error exception: #{handle_error_error.message}"
  log_error handle_error_error.backtrace.join("\n")
end
handle_termination(klass, params, exception = nil) click to toggle source
# File lib/active_worker/job_queue/job_executer.rb, line 40
def self.handle_termination(klass, params, exception = nil)
  log_error "Handling #{exception || "termination" } for #{klass}"
  klass.handle_termination params
  exit
end
log_error(message) click to toggle source
# File lib/active_worker/job_queue/job_executer.rb, line 46
def self.log_error(message)
  puts "JOB EXECUTOR: #{message}"
end
perform(args) click to toggle source
# File lib/active_worker/job_queue/job_executer.rb, line 11
def self.perform(args)
  execute_task_from_args(args)
end