class Sidewatch::Daemon
Attributes
cloudwatch[RW]
interval[RW]
sidekiq[RW]
Public Class Methods
new(config = {})
click to toggle source
# File lib/sidewatch/daemon.rb, line 11 def initialize(config = {}) sidekiq_config = config.fetch(:sidekiq){ Hash.new }.symbolize_keys self.sidekiq = Sidewatch::Sidekiq.new(sidekiq_config) cloudwatch_config = config.fetch(:cloudwatch){ Hash.new }.symbolize_keys self.cloudwatch = Sidewatch::Cloudwatch.new(cloudwatch_config) self.interval = config.fetch(:interval){ 60 } end
Public Instance Methods
run()
click to toggle source
# File lib/sidewatch/daemon.rb, line 19 def run logger.info("Starting #{self.class}...") every(interval) do metrics = sidekiq.metrics logger.info(metrics) cloudwatch.send(metrics) end end
Private Instance Methods
every(interval, &block)
click to toggle source
# File lib/sidewatch/daemon.rb, line 30 def every(interval, &block) loop do ts = Time.now block.call remaining = (ts + interval) - Time.now sleep remaining end rescue Interrupt logger.info("Interrupted; exiting.") end
logger()
click to toggle source
# File lib/sidewatch/daemon.rb, line 41 def logger Sidewatch.logger end