public ISubscription Subscribe(IMessageHandler messageHandler, string groupId, params string[] topics) { if (messageHandler == null) { throw new ArgumentNullException(nameof(messageHandler)); } if (groupId == null) { throw new ArgumentNullException(nameof(groupId)); } if (topics == null) { throw new ArgumentNullException(nameof(topics)); } if (topics.Length < 1) { throw new ArgumentException("At least one topic is necessary to subscribe.", nameof(topics)); } var kafkaConsumerWrapper = new KafkaConsumerWrapper(configuration, loggerFactory, groupId); consumers.Add(kafkaConsumerWrapper); return(new KafkaSubscription(kafkaConsumerWrapper, messageHandler, groupId, topics)); //return Task.Run(() => kafkaConsumerWrapper.SubscribeAndStartPoll(messageHandler, topics, cancellationToken)); }
public KafkaSubscription(KafkaConsumerWrapper kafkaConsumerWrapper, IMessageHandler messageHandler, string groupId, string[] topics) { this.kafkaConsumerWrapper = kafkaConsumerWrapper ?? throw new System.ArgumentNullException(nameof(kafkaConsumerWrapper)); this.messageHandler = messageHandler ?? throw new System.ArgumentNullException(nameof(messageHandler)); this.groupId = groupId ?? throw new System.ArgumentNullException(nameof(groupId)); this.topics = topics; }
public IMessage ReadSingle(IDictionary <string, object> messageAddress) { if (messageAddress == null) { throw new ArgumentNullException(nameof(messageAddress)); } if (readFromParticularAddressConsumer == null) { readFromParticularAddressConsumer = new KafkaConsumerWrapper(configuration, loggerFactory, ReadFromParticularAddressGroup); } return(readFromParticularAddressConsumer.ReadFromParticularAddress(messageAddress)); }