Module: HireFire::Macro::Sidekiq
Instance Method Summary collapse
-
#queue(*queues) ⇒ Integer
Counts the amount of jobs in the (provided) Sidekiq queue(s).
Instance Method Details
#queue(*queues) ⇒ Integer
Counts the amount of jobs in the (provided) Sidekiq queue(s).
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/hirefire/macro/sidekiq.rb', line 18 def queue(*queues) queues = queues.flatten.map(&:to_s) queues = ::Sidekiq::Stats.new.queues.map { |name, _| name } if queues.empty? in_queues = queues.inject(0) do |memo, name| memo += ::Sidekiq::Queue.new(name).size memo end in_progress = ::Sidekiq::Workers.new.inject(0) do |memo, job| memo += 1 if queues.include?(job[1]["queue"]) && job[1]["run_at"] <= Time.now.to_i memo end in_queues + in_progress end |