class Taskflow::Task
Public Instance Methods
go(sidekiq_logger)
click to toggle source
# File lib/taskflow/task.rb, line 18 def go(sidekiq_logger) raise NotImplementedError end
resume()
click to toggle source
# File lib/taskflow/task.rb, line 22 def resume if self.state == 'paused' && self.result == 'error' self.flow.update_attributes! state: 'running' Taskflow::Worker.perform_async self.flow.id.to_s,self.id.to_s end end
skip()
click to toggle source
# File lib/taskflow/task.rb, line 39 def skip self.reload if self.state == 'paused' self.update_attributes! state: 'skipped' Taskflow::Worker.perform_async self.flow.id.to_s,self.id.to_s end end
wakeup(arguments={})
click to toggle source
# File lib/taskflow/task.rb, line 29 def wakeup(arguments={}) self.reload if self.state == 'paused' && self.result == 'suspend' self.data = self.data.merge arguments self.result = nil self.save Taskflow::Worker.perform_async self.flow.id.to_s,self.id.to_s end end
Private Instance Methods
method_missing(name,*args)
click to toggle source
Calls superclass method
# File lib/taskflow/task.rb, line 67 def method_missing(name,*args) if /^(set|append|clear)_(input|output|data)$/ =~ name.to_s act,fd = name.to_s.split '_' if act == 'set' return false unless args.first self.update_attributes! "#{fd}"=>args.first elsif act == 'append' return false unless args.first self.update_attributes! "#{fd}"=>self.send("#{fd}").merge(args.first) else self.update_attributes! "#{fd}"=>{} end else super end end
remove_self_in_stream()
click to toggle source
# File lib/taskflow/task.rb, line 49 def remove_self_in_stream downstream.delete self if downstream.include? self upstream.delete self if upstream.include? self end
set_default_property()
click to toggle source
# File lib/taskflow/task.rb, line 84 def set_default_property self.klass ||= self.class.to_s self.state ||= 'pending' self.input ||= {} self.output ||= {} self.data ||= {} end
suspend()
click to toggle source
# File lib/taskflow/task.rb, line 54 def suspend throw :control,:suspend end
tflogger()
click to toggle source
# File lib/taskflow/task.rb, line 58 def tflogger @tflogger ||= ( _logger = flow.tflogger _logger.instance_variable_set '@step_id',self.index _logger.instance_variable_set '@writer',self.name _logger ) end