class RailsAutoscaleAgent::WorkerAdapters::Resque

Attributes

queues[W]

Public Instance Methods

collect!(store) click to toggle source
# File lib/rails_autoscale_agent/worker_adapters/resque.rb, line 25
def collect!(store)
  log_msg = String.new
  current_queues = ::Resque.queues

  # Don't collect worker metrics if there are unreasonable number of queues
  if current_queues.size > 50
    logger.debug "Skipping Resque metrics - #{current_queues.size} queues"
    return
  end

  # Ensure we continue to collect metrics for known queue names, even when nothing is
  # enqueued at the time. Without this, it will appears that the agent is no longer reporting.
  self.queues |= current_queues

  queues.each do |queue|
    next if queue.nil? || queue.empty?
    depth = ::Resque.size(queue)
    store.push depth, Time.now, queue, :qd
    log_msg << "resque-qd.#{queue}=#{depth} "
  end

  logger.debug log_msg
end
enabled?() click to toggle source
# File lib/rails_autoscale_agent/worker_adapters/resque.rb, line 17
def enabled?
  require 'resque'
  logger.info "Resque enabled"
  true
rescue LoadError
  false
end
queues() click to toggle source
# File lib/rails_autoscale_agent/worker_adapters/resque.rb, line 13
def queues
  @queues ||= ['default']
end