Class: Gitlab::Counters::FlushStaleCounterIncrements

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/counters/flush_stale_counter_increments.rb

Instance Method Summary collapse

Constructor Details

#initialize(collection) ⇒ FlushStaleCounterIncrements

Returns a new instance of FlushStaleCounterIncrements.



6
7
8
9
10
# File 'lib/gitlab/counters/flush_stale_counter_increments.rb', line 6

def initialize(collection)
  @collection = collection
  @logger = Gitlab::AppLogger
  @counter_attributes = collection.counter_attributes.keys.map(&:to_sym)
end

Instance Method Details

#executeObject



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/gitlab/counters/flush_stale_counter_increments.rb', line 12

def execute
  collection_min_id = collection.minimum(:id)
  counter_attributes.each do |attribute|
    logger.info(
      class: self.class,
      attribute: attribute,
      collection_min_id: collection_min_id
    )
    counters = filtered_counters(collection, attribute)
    counters.each_value(&:commit_increment!)
  end
end