Sha256: 4673b3fa3f55df24e3236d0efa7ef271d9196fbc2897df4d91a17f06b47766c8
Contents?: true
Size: 1023 Bytes
Versions: 4
Compression:
Stored size: 1023 Bytes
Contents
require "daemons" module Sidewatch class Daemon attr_accessor :sidekiq attr_accessor :cloudwatch attr_accessor :interval 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 def run logger.info("Starting #{self.class}...") every(interval) do metrics = sidekiq.metrics logger.info(metrics) cloudwatch.send(metrics) end end private 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 def logger Sidewatch.logger end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
sidewatch-0.0.4 | lib/sidewatch/daemon.rb |
sidewatch-0.0.3 | lib/sidewatch/daemon.rb |
sidewatch-0.0.2 | lib/sidewatch/daemon.rb |
sidewatch-0.0.1 | lib/sidewatch/daemon.rb |