class Slnky::Service::Base
Attributes
config[R]
name[R]
subscriber[R]
timers[R]
Public Class Methods
new()
click to toggle source
# File lib/slnky/service.rb, line 14 def initialize config.service = name @server_down = false end
Protected Class Methods
periodic(seconds, method)
click to toggle source
# File lib/slnky/service.rb, line 101 def periodic(seconds, method) Slnky::Service.timers.add(seconds, method) end
Also aliased as: timer
subscribe(name, method)
click to toggle source
# File lib/slnky/service.rb, line 97 def subscribe(name, method) Slnky::Service.subscriber.add(name, method) end
Public Instance Methods
handle_command(event, data)
click to toggle source
# File lib/slnky/service.rb, line 35 def handle_command(event, data) if command command.handle(event, data) else log.error "no comamnd support for #{name}" end end
handle_heartbeat()
click to toggle source
# File lib/slnky/service.rb, line 49 def handle_heartbeat # log.debug "heartbeat #{name}" Slnky.heartbeat(name) end
handle_restart(name, data)
click to toggle source
# File lib/slnky/service.rb, line 43 def handle_restart(name, data) # if we get this event, just stop. upstart will start us again. log.warn "received restart event" transport.stop!('Restarted') end
start()
click to toggle source
# File lib/slnky/service.rb, line 19 def start transport.start!(self) do |_| log.info "#{config.service} running #{config.environment}" run subscriber.add "slnky.#{name}.command", :handle_command subscriber.add "slnky.help.command", :handle_command subscriber.add "slnky.service.restart", :handle_restart timers.add 5.seconds, :handle_heartbeat # unless config.development? subscriber.each do |name, method| log.info "subscribed to: #{name} -> #{self.class.name}.#{method}" end end end
Protected Instance Methods
command()
click to toggle source
# File lib/slnky/service.rb, line 92 def command @command ||= "Slnky::#{name.capitalize}::Command".constantize.new rescue nil end
log()
click to toggle source
# File lib/slnky/service.rb, line 80 def log Slnky::Log.instance end
msg(data)
click to toggle source
# File lib/slnky/service.rb, line 72 def msg(data) Slnky::Message.new(data) end
parse(data)
click to toggle source
# File lib/slnky/service.rb, line 76 def parse(data) Slnky::Message.parse(data) end
run()
click to toggle source
# File lib/slnky/service.rb, line 68 def run # nothing here - overridden in subclasses end
transport()
click to toggle source
# File lib/slnky/service.rb, line 88 def transport @transport ||= Slnky::Transport.instance end