class Kafka::Heartbeat

Public Class Methods

new(group:, interval:, instrumenter:) click to toggle source
# File lib/kafka/heartbeat.rb, line 5
def initialize(group:, interval:, instrumenter:)
  @group = group
  @interval = interval
  @last_heartbeat = Time.now
  @instrumenter = instrumenter
end

Public Instance Methods

trigger() click to toggle source
# File lib/kafka/heartbeat.rb, line 21
def trigger
  trigger! if Time.now > @last_heartbeat + @interval
end
trigger!() click to toggle source
# File lib/kafka/heartbeat.rb, line 12
def trigger!
  @instrumenter.instrument('heartbeat.consumer',
                           group_id: @group.group_id,
                           topic_partitions: @group.assigned_partitions) do
    @group.heartbeat
    @last_heartbeat = Time.now
  end
end