class NagiosCheckResque::QueueSizeCheck

Prevent jobs from queuing up

Public Class Methods

new(resque = ResqueAdapter.new) click to toggle source
# File lib/nagios_check_resque/queue_size_check.rb, line 16
def initialize(resque = ResqueAdapter.new)
  @resque = resque
end

Public Instance Methods

check() click to toggle source
# File lib/nagios_check_resque/queue_size_check.rb, line 20
def check
  @resque.setup(redis_url: options['redis-url'])

  store_message(queue_sizes_message)
  store_value(:max, queue_sizes.values.max)

  queue_sizes.each do |name, size|
    store_value(name, size)
  end
end

Private Instance Methods

queue_sizes() click to toggle source
# File lib/nagios_check_resque/queue_size_check.rb, line 39
def queue_sizes
  @queue_sizes ||= queues.each_with_object({}) do |name, sizes|
    sizes[name] = @resque.queue_size(name)
  end
end
queue_sizes_message() click to toggle source
# File lib/nagios_check_resque/queue_size_check.rb, line 33
def queue_sizes_message
  queue_sizes.sort_by { |_, size| size }.reverse.map { |name, size|
    "#{size} in #{name}"
  }.compact.join(', ')
end
queues() click to toggle source
# File lib/nagios_check_resque/queue_size_check.rb, line 45
def queues
  options.queues.split(',')
end