Method: Rdkafka::Producer#close

Defined in:
lib/rdkafka/producer.rb

#closeObject

Close this producer and wait for the internal poll queue to empty.


139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/rdkafka/producer.rb', line 139

def close
  return if closed?
  ObjectSpace.undefine_finalizer(self)

  @native_kafka.close do
    # We need to remove the topics references objects before we destroy the producer,
    # otherwise they would leak out
    @topics_refs_map.each_value do |refs|
      refs.each_value do |ref|
        Rdkafka::Bindings.rd_kafka_topic_destroy(ref)
      end
    end
  end

  @topics_refs_map.clear
end