class Actionable::Job
Attributes
actionable[R]
payload[R]
target[R]
Public Class Methods
before_enqueue(id)
click to toggle source
# File lib/actionable/job.rb, line 19 def self.before_enqueue(id) actionable = Actionable::Action.find(id) actionable.update_attributes(status: :enqueued) true end
logger()
click to toggle source
# File lib/actionable/job.rb, line 7 def self.logger defined?(Rails) ? Rails.logger : Resque.logger end
new(target,payload={},actionable=nil)
click to toggle source
# File lib/actionable/job.rb, line 52 def initialize(target,payload={},actionable=nil) @target = target @actionable = actionable @payload = HashWithIndifferentAccess.new(payload) end
on_failure(err,id)
click to toggle source
# File lib/actionable/job.rb, line 25 def self.on_failure(err,id) begin actionable = Actionable::Action.find(id) actionable.update_attributes({ status: :failed, exception_message: err.message, exception_backtrace: err.backtrace }) job = new(actionable.target,actionable.payload,actionable) job.on_failure(err) if job.respond_to?(:on_failure) rescue => e puts "Error in 'on_failure' handler: #{e.message}" logger.error("Error in 'on_failure' handler: #{e.message}") raise end raise err end
perform(id)
click to toggle source
# File lib/actionable/job.rb, line 43 def self.perform(id) actionable = Actionable::Action.find(id) actionable.update_attributes(status: :working) job = new(actionable.target,actionable.payload,actionable) job.perform actionable.update_attributes(status: :complete) job.on_success if job.respond_to?(:on_success) end
queue()
click to toggle source
# File lib/actionable/job.rb, line 15 def self.queue @queue ||= 'actionable' end
Public Instance Methods
logger()
click to toggle source
# File lib/actionable/job.rb, line 11 def logger self.class.logger end