module TengineJobAgent::CommandUtils::ClassMethods

Public Instance Methods

load_config() click to toggle source
# File lib/tengine_job_agent/command_utils.rb, line 43
def load_config
  config_path = Dir["{.,./config,/etc}/tengine_job_agent{.yml,.yml.erb}"].first
  if config_path
    YAML.load_file(config_path)
  else
    DEFAULT_CONFIG
  end
end
new_logger(config) click to toggle source
# File lib/tengine_job_agent/command_utils.rb, line 72
def new_logger(config)
  logfile = config['logfile']
  unless logfile
    prefix = self.name.split('::').last.downcase
    logfile = File.expand_path("#{prefix}-#{Process.pid}.log", config['log_dir'])
  end
  result = Tengine::Support::NamedLogger.new(File.basename($PROGRAM_NAME), logfile)
  result.level = Logger::DEBUG
  result
end
process(*args) click to toggle source
# File lib/tengine_job_agent/command_utils.rb, line 52
def process(*args)
  config = load_config
  logger = new_logger(config)
  Tengine.logger = logger
  Kernel.at_exit do
    logger.info("process is exiting now")
  end

  begin
    logger.info("#{self.name}#process starting")
    new(logger, args, config).process
    logger.info("#{self.name}#process finished successfully")
  rescue Exception => e
    logger.error("#{self.name}#process error: [#{e.class.name}] #{e.message}\n  " << e.backtrace.join("\n"))
    return false
  ensure
    logger.info("#{self.name}#process finished at the end")
  end
end