Module: HireFire::Macro::Sidekiq

Extended by:
Sidekiq
Included in:
Sidekiq
Defined in:
lib/hirefire/macro/sidekiq.rb

Instance Method Summary collapse

Instance Method Details

#queue(*queues) ⇒ Integer

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

Examples:

Sidekiq Macro Usage

HireFire::Macro::Sidekiq.queue # all queues
HireFire::Macro::Sidekiq.queue("email") # only email queue
HireFire::Macro::Sidekiq.queue("audio", "video") # audio and video queues
HireFire::Macro::Sidekiq.queue("email", skip_scheduled: true) # only email, will not count scheduled queue
HireFire::Macro::Sidekiq.queue("audio", skip_retries: true) # only audio, will not count the retries queue


20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/hirefire/macro/sidekiq.rb', line 20

def queue(*queues)
  require "sidekiq/api"

  queues.flatten!

  if queues.last.is_a?(Hash)
    options = queues.pop
  else
    options = {}
  end

  queues.map!(&:to_s)
  all_queues = ::Sidekiq::Queue.all.map(&:name)
  queues = all_queues if queues.empty?

  if fast_lookup_capable?(queues, all_queues)
    fast_lookup(options)
  else
    dynamic_lookup(queues, options)
  end
end