Module: Resque::HttpStats

Defined in:
lib/resque/http_stats.rb,
lib/resque/http_stats/version.rb

Constant Summary collapse

VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.call(env) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 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