class Actn::Jobs::Base
Attributes
job[RW]
record[RW]
Public Class Methods
new(job)
click to toggle source
# File lib/actn/jobs/base.rb, line 11 def initialize job @job = job @record = job.record || Oj.load(DB::Set[job.table_name].find_by({uuid: job.record_uuid})) end
Public Instance Methods
perform()
click to toggle source
# File lib/actn/jobs/base.rb, line 16 def perform end
test_and_perform()
click to toggle source
# File lib/actn/jobs/base.rb, line 19 def test_and_perform unless self.record $stderr.puts "[#{self.class.name}#test_and_perform, #{Time.now}]: Record not found" return end if job.hook['conditions'].nil? || ( !job.hook['conditions'].map{|c| eval(c,binding) ? true : false }.include?(false) ) run else Jobs.logger.warn "Conditions failed, CONDITIONS: #{job.hook['conditions']} RECORD: #{self.record}" job.update(result: {error: "Conditions failed"}) end end
Private Instance Methods
run()
click to toggle source
# File lib/actn/jobs/base.rb, line 41 def run begin result = perform rescue Exception => e job.update(result: {error: {message: e.message, stack: e.respond_to?(:backtrace) ? e.backtrace : e.inspect}}) Jobs.logger.error e end job.update(result: result) end