Class: Karafka::Pro::ScheduledMessages::MaxEpoch

Inherits:
Object
  • Object
show all
Defined in:
lib/karafka/pro/scheduled_messages/max_epoch.rb

Overview

Simple max value accumulator. When we dispatch messages we can store the max timestamp until which messages were dispatched by us. This allows us to quickly skip those messages during recovery, because we do know, they were dispatched.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMaxEpoch

Returns a new instance of MaxEpoch.



26
27
28
29
# File 'lib/karafka/pro/scheduled_messages/max_epoch.rb', line 26

def initialize
  @max = -1
  @to_i = @max
end

Instance Attribute Details

#to_iInteger (readonly)

Returns max epoch recorded.

Returns:

  • (Integer)

    max epoch recorded



24
25
26
# File 'lib/karafka/pro/scheduled_messages/max_epoch.rb', line 24

def to_i
  @to_i
end

Instance Method Details

#update(new_max) ⇒ Object

Updates epoch if bigger than current max

Parameters:

  • new_max (Integer)

    potential new max epoch



33
34
35
36
37
38
# File 'lib/karafka/pro/scheduled_messages/max_epoch.rb', line 33

def update(new_max)
  return unless new_max > @max

  @max = new_max
  @to_i = @max - GRACE_PERIOD
end