class MetricsCapacitor::Processor::Core

Public Class Methods

new(logpipe) click to toggle source
# File lib/metrics-capacitor/processor/core.rb, line 8
def initialize(logpipe)
  Config.load!
  @_logger = ::Logger.new(logpipe)
  @_name = self.class.to_s.split('::').last.downcase
  @_logger.progname = @_name
  @_logger.level = log_level
  @_logger.formatter = proc { |severity, datetime, progname, msg| "#{progname}##{Process.pid}|||#{severity}|||#{msg}\n" }
  logger.info "Initializing processor"
  post_init
end

Public Instance Methods

logger() click to toggle source
# File lib/metrics-capacitor/processor/core.rb, line 33
def logger
  @_logger
end
post_init() click to toggle source

implement in the processor Class

# File lib/metrics-capacitor/processor/core.rb, line 20
def post_init
end
process() click to toggle source

implement in the processor Class

# File lib/metrics-capacitor/processor/core.rb, line 24
def process
  loop { logger.debug "alive"; sleep 10 }
end
shutdown() click to toggle source

implement in the processor Class

# File lib/metrics-capacitor/processor/core.rb, line 29
def shutdown
  exit 1
end
shutdown!() click to toggle source
# File lib/metrics-capacitor/processor/core.rb, line 52
def shutdown!
  shutdown
end
start!() click to toggle source
# File lib/metrics-capacitor/processor/core.rb, line 37
def start!
  logger.info "Starting processor"
  begin
    process
  rescue StandardError => e
    logger.fatal 'SHUTTING DOWN DUE TO AN EXCEPTION!'
    logger.fatal [e.class, e.message].join(' -> ')
    logger.fatal e.backtrace
    logger.fatal 'Sending SIGINT to the engine'
    Process.kill('INT', Process.ppid)
    shutdown!
  end
  logger.info "Processor finished"
end

Private Instance Methods

log_level() click to toggle source
# File lib/metrics-capacitor/processor/core.rb, line 57
def log_level
  Config.debug ? ::Logger::DEBUG : ::Logger::INFO
end