class HareDo::Service::Daemon
Attributes
loaded_modules[R]
Public Class Methods
new(name='haredo', config_file=nil)
click to toggle source
Calls superclass method
HareDo::Peer::new
# File src/lib/haredo/service/daemon.rb, line 17 def initialize(name='haredo', config_file=nil) super(name) @name = name @queue_name = 'haredo' @queue_properties = {} @loaded_modules = [] @config_file = config_file loadConfig(config_file) account = @config['system']['broker'] connect( :user => account['user'], :password => account['password'], :host => account['host'], :port => account['port'], :vhost => account['vhost'], :ssl => account['ssl'] ) @daemon_key = @config['daemon']['key'] # Load modules in config daemon_conf = @config['daemon'] daemon_conf['modules'].each do |mod| @loaded_modules << mod require mod end # Use configuration file for queue name if daemon_conf.has_key?('queue') @queue_name = daemon_conf['queue']['name'] || 'haredo' @queue_properties = daemon_conf['queue']['properties'] || {} end # Change module search path pluginStartup() plugin_conf = @config['daemon']['services'].each do |service_name, service_conf| if service_conf.has_key?('path_prefix') @plugins.module_path_prefix = service_conf['path_prefix'] end @plugins.loadConfig(service_conf['plugins']) end # Load the status plugin @plugins.module_path_prefix = 'haredo/plugins' @plugins.load('status') status_plugin = @plugins['status'] status_plugin.plugins = @plugins.loaded end
Public Instance Methods
createQueue()
click to toggle source
Defined the queue this service will listen on. Assumes a single-instance service therefore declares queue as exclusive.
# File src/lib/haredo/service/daemon.rb, line 83 def createQueue() properties = { :auto_delete => true, :exclusive => true } @queue_properties.each do |k,v| properties[k.to_sym] = v end return @channel.queue(@queue_name, properties) end
pluginShutdown()
click to toggle source
Custom hook for plugin shutdown. Called after plugins are shutdown.
# File src/lib/haredo/service/daemon.rb, line 77 def pluginShutdown() end
pluginStartup()
click to toggle source
Custom hook for plugin startup. Called before plugins are initialized.
# File src/lib/haredo/service/daemon.rb, line 72 def pluginStartup() end
run(args={})
click to toggle source
# File src/lib/haredo/service/daemon.rb, line 96 def run(args={}) if not args.has_key?(:blocking) args[:blocking] = true end if $syslog.nil? Syslog.open('haredo', Syslog::LOG_PID, Syslog::LOG_DAEMON | Syslog::LOG_LOCAL7) Syslog.notice('Daemonizing') $syslog = true end # Write PID file out file = File.open(@pid_file, 'w') file.write(Process.pid.to_s) file.close() listen(args) end
serve(msg)
click to toggle source
# File src/lib/haredo/service/daemon.rb, line 119 def serve(msg) data = msg.headers['i'].to_i + 1 if msg.headers.has_key?('command') if msg.headers['key'] == @daemon_key Syslog.notice('Exiting') disconnect() return false end end @plugins.process(msg) end
shutdown()
click to toggle source
# File src/lib/haredo/service/daemon.rb, line 133 def shutdown() @plugins.shutdown() pluginShutdown() end