module Resque::HttpStats

Constants

VERSION

Public Class Methods

call(env) click to toggle source
# File lib/resque/http_stats.rb, line 3
def self.call(env)
  info = Resque.info
  failed_queues = Resque::Failure.all(0, Resque::Failure.count).inject(Hash.new(0)) do |res, f|
    res[f['queue']] += 1
    res
  end

  queues = Resque.queues.inject({}) do |res, q|
    res[q] = {
      in_queue: Resque.size(q),
      failed: failed_queues[q],
    }
    res
  end

  stats = { resque: {
    processed:  info[:processed],
    failed:     info[:failed],
    pending:   info[:pending],
    workers: info[:workers],
    working: info[:working],
    queues: queues
  }}

  [
    200,
    {
      'Content-Type'=> 'application/json'
    },
    [JSON.generate(stats)]
  ]
end