Как отправить результаты партии в Кафку в .Net? - PullRequest
0 голосов
/ 26 июня 2019

нетто и кафка. Я использую последнюю версию Kafka в .Net. Я пытаюсь написать код для batchproducer. Предыдущая бета-версия имеет метод BeginProduce. Теперь последняя версия Kafka не имеет этого метода. Ниже мой простой метод для продюсера.

 public async Task ProduceAsync<TEvent>(TEvent ipmEvent, string topicName)
    where TEvent : ISpecificRecord
    {
      using (var producerClient = kafkaProducerConnection.ProducerBuilder<Null, TEvent>())
      {
        await producerClient.ProduceAsync(topicName, new Message<Null, TEvent> { Value = ipmEvent }).ContinueWith(
            reportTask =>
            {
              if (reportTask.IsCompletedSuccessfully)
              {
                var deliveryReport = reportTask.Result;
                logger.LogInformation($"KafkaProducer.ProduceAsync: Delivered message to {deliveryReport.TopicPartitionOffset}");
              }
              else if (reportTask.IsFaulted && reportTask.Exception != null)
              {
                var exceptionMessages = string.Join(". ", reportTask.Exception.InnerExceptions.Select(e => e.Message));
                logger.LogError($"KafkaProducer.ProduceAsync failed - {exceptionMessages}");
                throw new Exception($"Error sending message, {reportTask.Exception}");
              }
              else
              {
                logger.LogError($"KafkaProducer.ProduceAsync failed");
                throw new Exception($"Error sending message {reportTask.Exception}");
              }
            });
      }
    }

Может ли кто-нибудь помочь мне написать пакетного производителя с использованием .net? Любая гепатит был бы оценен. Спасибо

...