Class: SidekiqAutoscale::SidekiqInterface

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq_autoscale/sidekiq_interface.rb

Instance Method Summary collapse

Instance Method Details

#available_threadsObject



31
32
33
# File 'lib/sidekiq_autoscale/sidekiq_interface.rb', line 31

def available_threads
  total_threads - busy_threads
end

#busy_threadsObject



15
16
17
# File 'lib/sidekiq_autoscale/sidekiq_interface.rb', line 15

def busy_threads
  ::Sidekiq::Workers.new.map {|_, thread, _| thread }.uniq.size
end

#latencyObject



19
20
21
# File 'lib/sidekiq_autoscale/sidekiq_interface.rb', line 19

def latency
  queue_names.map {|q| ::Sidekiq::Queue.new(q).latency }.max
end

#queue_namesObject



11
12
13
# File 'lib/sidekiq_autoscale/sidekiq_interface.rb', line 11

def queue_names
  ::Sidekiq::Queue.all.map(&:name)
end

#total_queue_sizeObject



7
8
9
# File 'lib/sidekiq_autoscale/sidekiq_interface.rb', line 7

def total_queue_size
  queue_names.map {|q| ::Sidekiq::Queue.new(q).size }.reduce(0, &:+)
end

#total_threadsObject



27
28
29
# File 'lib/sidekiq_autoscale/sidekiq_interface.rb', line 27

def total_threads
  process_set.map {|w| w["concurrency"] }.reduce(0, &:+)
end

#total_workersObject



23
24
25
# File 'lib/sidekiq_autoscale/sidekiq_interface.rb', line 23

def total_workers
  process_set.size
end

#youngest_workerObject



35
36
37
# File 'lib/sidekiq_autoscale/sidekiq_interface.rb', line 35

def youngest_worker
  process_set.map {|w| w["started_at"] }.max
end