Module: Perfm::QueueLatency

Defined in:
lib/perfm/queue_latency.rb

Constant Summary collapse

QUEUE_PATTERN =
/\Awithin_(\d+)_(second|seconds|minute|minutes|hour|hours)\z/i

Class Method Summary collapse

Class Method Details

.parse_latency(queue_name) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/perfm/queue_latency.rb', line 5

def self.parse_latency(queue_name)
  return unless valid_queue_name?(queue_name)

  match_data = queue_name.match(QUEUE_PATTERN)
  value = match_data[1].to_i
  unit = match_data[2].downcase.sub(/s\z/, '')

  case unit
  when 'second' then value
  when 'minute' then value * 60
  when 'hour' then value * 3600
  end
end

.valid_queue_name?(queue_name) ⇒ Boolean

Returns:

  • (Boolean)


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

def self.valid_queue_name?(queue_name)
  queue_name&.match?(QUEUE_PATTERN)
end