Class: RooOnRails::Sidekiq::QueueLatency

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/roo_on_rails/sidekiq/queue_latency.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queue) ⇒ QueueLatency

Returns a new instance of QueueLatency.



19
20
21
# File 'lib/roo_on_rails/sidekiq/queue_latency.rb', line 19

def initialize(queue)
  @queue = queue
end

Instance Attribute Details

#queueObject (readonly)

Returns the value of attribute queue.



11
12
13
# File 'lib/roo_on_rails/sidekiq/queue_latency.rb', line 11

def queue
  @queue
end

Class Method Details

.queuesObject



13
14
15
16
17
# File 'lib/roo_on_rails/sidekiq/queue_latency.rb', line 13

def self.queues
  ::Sidekiq::Queue.all.each_with_object([]) do |q, array|
    array << new(q) if Settings.queues.include?(q.name.to_s)
  end
end

Instance Method Details

#normalised_latencyObject



23
24
25
26
27
# File 'lib/roo_on_rails/sidekiq/queue_latency.rb', line 23

def normalised_latency
  permitted_latency = Settings.permitted_latency_values[queue.name]
  return queue.latency.fdiv(permitted_latency).round(3) if permitted_latency
  raise("Cannot determine permitted latency for queue #{queue.name}")
end