Class: Kafka::AsyncProducer::Timer

Inherits:
Object
  • Object
show all
Defined in:
lib/kafka/async_producer.rb

Instance Method Summary collapse

Constructor Details

#initialize(interval:, queue:) ⇒ Timer

Returns a new instance of Timer.



172
173
174
175
# File 'lib/kafka/async_producer.rb', line 172

def initialize(interval:, queue:)
  @queue = queue
  @interval = interval
end

Instance Method Details

#runObject



177
178
179
180
181
182
183
184
185
# File 'lib/kafka/async_producer.rb', line 177

def run
  # Permanently sleep if the timer interval is zero.
  Thread.stop if @interval.zero?

  loop do
    sleep(@interval)
    @queue << [:deliver_messages, nil]
  end
end