Class: Dionysus::Producer::Outbox::Producer

Inherits:
Object
  • Object
show all
Defined in:
lib/dionysus/producer/outbox/producer.rb

Instance Method Summary collapse

Constructor Details

#initialize(config: Dionysus::Producer.configuration) ⇒ Producer

Returns a new instance of Producer.



7
8
9
# File 'lib/dionysus/producer/outbox/producer.rb', line 7

def initialize(config: Dionysus::Producer.configuration)
  @config = config
end

Instance Method Details

#call(topic, batch_size: config.outbox_publishing_batch_size) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/dionysus/producer/outbox/producer.rb', line 11

def call(topic, batch_size: config.outbox_publishing_batch_size)
  outbox_model.fetch_publishable(batch_size, topic).to_a.tap do |records_to_publish|
    records_processor.call(records_to_publish) do |record|
      yield record if block_given?
    end
  end
end