Module: WaterDrop::Patches::Rdkafka::Producer

Defined in:
lib/waterdrop/patches/rdkafka/producer.rb

Overview

Rdkafka::Producer patches

Instance Method Summary collapse

Instance Method Details

#nameString

Adds a method that allows us to get the native kafka producer name

In between rdkafka versions, there are internal changes that force us to add some extra magic to support all the versions.

Returns:

  • (String)

    producer instance name



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/waterdrop/patches/rdkafka/producer.rb', line 16

def name
  unless @_native
    version = ::Gem::Version.new(::Rdkafka::VERSION)

    if version < ::Gem::Version.new('0.12.0')
      @native = @native_kafka
    elsif version < ::Gem::Version.new('0.13.0.beta.1')
      @_native = @client.native
    else
      @_native = @native_kafka.inner
    end
  end

  ::Rdkafka::Bindings.rd_kafka_name(@_native)
end