Class: SourceMonitor::Jobs::SolidQueueMetrics

Inherits:
Object
  • Object
show all
Defined in:
lib/source_monitor/jobs/solid_queue_metrics.rb

Defined Under Namespace

Classes: QueueSummary

Constant Summary collapse

DEFAULT_QUEUE_NAME =
"default"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queue_names) ⇒ SolidQueueMetrics

Returns a new instance of SolidQueueMetrics.



30
31
32
# File 'lib/source_monitor/jobs/solid_queue_metrics.rb', line 30

def initialize(queue_names)
  @queue_names = Array(queue_names).map(&:to_s)
end

Class Method Details

.call(queue_names:) ⇒ Object



26
27
28
# File 'lib/source_monitor/jobs/solid_queue_metrics.rb', line 26

def self.call(queue_names:)
  new(queue_names).call
end

Instance Method Details

#callObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/source_monitor/jobs/solid_queue_metrics.rb', line 34

def call
  metrics = initialize_metrics

  return metrics unless solid_queue_supported?

  populate_counts(metrics)
  populate_timestamps(metrics)
  populate_pause_state(metrics)

  metrics
rescue ActiveRecord::StatementInvalid, ActiveRecord::ConnectionNotEstablished
  @solid_queue_supported = false
  initialize_metrics
end