Class: Autoscaler::Sidekiq::EntireQueueSystem

Inherits:
Object
  • Object
show all
Defined in:
lib/autoscaler/sidekiq/entire_queue_system.rb

Overview

Interface to to interrogate the queuing system Includes every queue

Instance Method Summary collapse

Instance Method Details

#any_work?Boolean

Returns if any kind of work still needs to be done.

Returns:

  • (Boolean)

    if any kind of work still needs to be done



30
31
32
# File 'lib/autoscaler/sidekiq/entire_queue_system.rb', line 30

def any_work?
  queued > 0 || scheduled > 0 || retrying > 0 || workers > 0
end

#queue_namesArray[String]

Returns:

  • (Array[String])


40
41
42
# File 'lib/autoscaler/sidekiq/entire_queue_system.rb', line 40

def queue_names
  sidekiq_queues.keys
end

#queuedInteger

Returns amount work ready to go.

Returns:

  • (Integer)

    amount work ready to go



15
16
17
# File 'lib/autoscaler/sidekiq/entire_queue_system.rb', line 15

def queued
  sidekiq_queues.values.map(&:to_i).reduce(&:+) || 0
end

#retryingInteger

Returns amount of work still being retried.

Returns:

  • (Integer)

    amount of work still being retried



25
26
27
# File 'lib/autoscaler/sidekiq/entire_queue_system.rb', line 25

def retrying
  ::Sidekiq::RetrySet.new.size
end

#scheduledInteger

Returns amount of work scheduled for some time in the future.

Returns:

  • (Integer)

    amount of work scheduled for some time in the future



20
21
22
# File 'lib/autoscaler/sidekiq/entire_queue_system.rb', line 20

def scheduled
  ::Sidekiq::ScheduledSet.new.size
end

#total_workInteger

Returns total amount of work.

Returns:

  • (Integer)

    total amount of work



35
36
37
# File 'lib/autoscaler/sidekiq/entire_queue_system.rb', line 35

def total_work
  queued + scheduled + retrying + workers
end

#workersInteger

Returns number of workers actively engaged.

Returns:

  • (Integer)

    number of workers actively engaged



9
10
11
12
# File 'lib/autoscaler/sidekiq/entire_queue_system.rb', line 9

def workers
  ::Sidekiq::Workers.new.map {|pid, _, _| pid}.uniq.size
  # #size may be out-of-date.
end