class EzNemo::Reactor
EventMachine reactor
Public Class Methods
new(opts)
click to toggle source
Usually called by self.run!
# File lib/eznemo.rb, line 21 def initialize(opts) c = EzNemo.load_config(opts[:config]) p = c[:probe] EzNemo.logger = eval(p[:logger]) if p[:logger].class == String logger = EzNemo.logger logger.level = eval(p[:log_level]) if p[:log_level].class == String logger.debug 'Loading datastore adapter...' require "eznemo/#{c[:datastore][:type]}" require 'eznemo/datastore' logger.debug 'Loading monitoring plugins...' require 'eznemo/monitor' require 'eznemo/monitor/ping' end
run!(opts)
click to toggle source
Start reactor @param opts [Hash] from command line @return [Object]
# File lib/eznemo.rb, line 14 def self.run!(opts) r = Reactor.new(opts) r.run r end
Public Instance Methods
run()
click to toggle source
Usually called by self.run!
# File lib/eznemo.rb, line 36 def run logger = EzNemo.logger ds = EzNemo.datastore Signal.trap('INT') do puts 'Interrupted.' ds.flush exit end Signal.trap('SIGTERM') do puts 'Stopping...' ds.flush exit end EM.run do logger.debug 'Loading checks...' EzNemo.monitor.start_checks(ds.checks) ds.start_loop end end