Class: Libis::Workflow::Mongoid::Run

Inherits:
WorkItem
  • Object
show all
Includes:
Base::Run
Defined in:
lib/libis/workflow/mongoid/run.rb

Instance Method Summary collapse

Methods inherited from WorkItem

#add_item, #get_item_list, #get_items, #move_item

Methods included from Base

included, #to_hash, #to_s

Instance Method Details

#close_loggerObject



76
77
78
79
80
81
# File 'lib/libis/workflow/mongoid/run.rb', line 76

def close_logger
  return unless self.log_to_file
  ::Logging::Appenders[self.name].close
  ::Logging::Appenders.remove(self.name)
  ::Logging::Repository.instance.delete(self.name)
end

#loggerObject



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/libis/workflow/mongoid/run.rb', line 55

def logger
  unless self.log_to_file
    return self.job.logger
  end
  logger = ::Logging::Repository.instance[self.name]
  return logger if logger
  unless ::Logging::Appenders[self.name]
    self.log_filename ||= File.join(::Libis::Workflow::Mongoid::Config[:log_dir], "#{self.name}-#{self.id}.log")
    ::Logging::Appenders::File.new(
        self.name,
        filename: self.log_filename,
        layout: ::Libis::Workflow::Mongoid::Config.get_log_formatter,
        level: self.log_level
    )
  end
  logger = ::Libis::Workflow::Mongoid::Config.logger(self.name, self.name)
  logger.additive = false
  logger.level = self.log_level
  logger
end

#nameObject



83
84
85
# File 'lib/libis/workflow/mongoid/run.rb', line 83

def name
  "#{self.job.name}-#{self.id.generation_time.strftime('%Y%m%d-%H%M%S')}-#{self.id.to_s[8..-1]}" rescue self.id.to_s
end

#rm_logObject



29
30
31
32
# File 'lib/libis/workflow/mongoid/run.rb', line 29

def rm_log
  log_file = self.log_filename
  FileUtils.rm(log_file) if log_file && !log_file.blank? && File.exist?(log_file)
end

#rm_workdirObject



34
35
36
37
# File 'lib/libis/workflow/mongoid/run.rb', line 34

def rm_workdir
  workdir = self.work_dir
  FileUtils.rmtree workdir if workdir && !workdir.blank? && Dir.exist?(workdir)
end

#run(action = :run) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/libis/workflow/mongoid/run.rb', line 46

def run(action = :run)
  self.start_date = Time.now
  self.tasks = []
  super action
  self.reload
  self.reload_relations
  close_logger
end

#work_dirObject



39
40
41
42
43
44
# File 'lib/libis/workflow/mongoid/run.rb', line 39

def work_dir
  # noinspection RubyResolve
  dir = File.join(Libis::Workflow::Config.workdir, self.id)
  FileUtils.mkpath dir unless Dir.exist?(dir)
  dir
end