Class: Karafka::Swarm::ProducerReplacer
- Inherits:
-
Object
- Object
- Karafka::Swarm::ProducerReplacer
- Defined in:
- lib/karafka/swarm/producer_replacer.rb
Overview
Builds a new WaterDrop producer that inherits configuration from an old one
When a swarm node forks, the parent’s producer must be replaced with a new one. This class encapsulates the logic for building that new producer, inheriting all relevant settings from the old one while generating fresh connection-level configuration.
Instance Method Summary collapse
-
#call(old_producer, kafka, logger) ⇒ WaterDrop::Producer
Builds a new WaterDrop producer inheriting configuration from the old one.
Instance Method Details
#call(old_producer, kafka, logger) ⇒ WaterDrop::Producer
Builds a new WaterDrop producer inheriting configuration from the old one
31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/karafka/swarm/producer_replacer.rb', line 31 def call(old_producer, kafka, logger) old_producer_config = old_producer.config WaterDrop::Producer.new do |p_config| p_config.logger = logger migrate_kafka(p_config, old_producer_config, kafka) migrate_root(p_config, old_producer_config) migrate_oauth(p_config, old_producer_config) migrate_polling(p_config, old_producer_config) migrate_polling_fd(p_config, old_producer_config) end end |