Module: HireFire::Macro::Resque

Extended by:
Resque
Included in:
Resque
Defined in:
lib/hirefire/macro/resque.rb

Instance Method Summary collapse

Instance Method Details

#queue(*queues) ⇒ Integer

Counts the amount of jobs in the (provided) Resque queue(s).

Examples:

Resque Macro Usage

HireFire::Macro::Resque.queue # all queues
HireFire::Macro::Resque.queue("email") # only email queue
HireFire::Macro::Resque.queue("audio", "video") # audio and video queues

Parameters:

  • queues (Array)

    provide one or more queue names, or none for “all”.

Returns:

  • (Integer)

    the number of jobs in the queue(s).



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/hirefire/macro/resque.rb', line 18

def queue(*queues)
  queues = queues.flatten.map(&:to_s)
  queues = ::Resque.queues if queues.empty?

  in_queues = queues.inject(0) do |memo, queue|
    memo += ::Resque.size(queue)
    memo
  end

  in_progress = ::Resque::Worker.all.inject(0) do |memo, worker|
    memo += 1 if queues.include?(worker.job["queue"])
    memo
  end

  in_queues + in_progress
end