Example #1
0
        private void DisposeInnerProducer()
        {
            // Dispose only if still in cache to avoid ObjectDisposedException
            if (!ProducersCache.TryRemove(Endpoint.Configuration.ConfluentConfig, out _))
            {
                return;
            }

            _innerProducer?.Flush(TimeSpan.FromSeconds(10));
            _innerProducer?.Dispose();
            _innerProducer = null;
        }
Example #2
0
 /// <summary>
 /// Kafka event producer constructor.
 /// </summary>
 /// <param name="producer">Kafka producer.</param>
 /// <param name="topic">Kafka topic.</param>
 /// <param name="logger"></param>
 public KafkaEventProducerAsync(Confluent.Kafka.IProducer <TKey, TValue> producer, string topic, ILogger logger = null)
 {
     this.producer = producer;
     this.topic    = topic;
     this.logger   = logger;
 }
Example #3
0
 public KafkaProducer(Confluent.Kafka.IProducer <TKey, TValue> kafkaProducer)
 {
     this._kafkaProducer = kafkaProducer;
 }
Example #4
0
 private Confluent.Kafka.IProducer <byte[], byte[]> GetInnerProducer() =>
 _innerProducer ?? (_innerProducer =
                        ProducersCache.GetOrAdd(Endpoint.Configuration.ConfluentConfig, _ => CreateInnerProducer()));