Class: SolidObserver::Services::RecordCacheMetric

Inherits:
Object
  • Object
show all
Defined in:
lib/solid_observer/services/record_cache_metric.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(event) ⇒ RecordCacheMetric

Returns a new instance of RecordCacheMetric.



10
11
12
# File 'lib/solid_observer/services/record_cache_metric.rb', line 10

def initialize(event)
  @event = event
end

Class Method Details

.call(event:) ⇒ Object



6
7
8
# File 'lib/solid_observer/services/record_cache_metric.rb', line 6

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

Instance Method Details

#callObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/solid_observer/services/record_cache_metric.rb', line 14

def call
  metric = SolidObserver::CacheMetric.find_or_create_by!(
    event_type: event_type,
    period_start: period_start
  )

  SolidObserver::CacheMetric
    .where(id: metric.id)
    .update_all(update_values)
rescue ActiveRecord::RecordNotUnique
  retry
rescue => error
  Rails.logger&.warn("[SolidObserver] Cache metric recording failed: #{error.message}") if defined?(Rails)
end