Kafka.Client.Producers.Sync.SyncProducer.MultiSend C# (CSharp) Method

MultiSend() public method

Sends the data to a multiple topics on Kafka server synchronously
public MultiSend ( IEnumerable requests ) : void
requests IEnumerable /// The requests. ///
return void
        public void MultiSend(IEnumerable<ProducerRequest> requests)
        {
            Guard.NotNull(requests, "requests");
            Guard.Assert<ArgumentNullException>(
                () => requests.All(
                    x => x != null && x.MessageSet != null && x.MessageSet.Messages != null));
            Guard.Assert<ArgumentNullException>(
                () => requests.All(
                    x => x.MessageSet.Messages.All(
                        y => y != null && y.PayloadSize <= this.Config.MaxMessageSize)));
            this.EnsuresNotDisposed();
            var multiRequest = new MultiProducerRequest(requests);
            this.connection.Write(multiRequest);
        }

Usage Example

示例#1
0
        public void ProducerSendMultiRequest()
        {
            List<ProducerRequest> requests = new List<ProducerRequest>
            {
                new ProducerRequest(CurrentTestTopic, 0, new List<Message> { new Message(Encoding.UTF8.GetBytes("1: " + DateTime.UtcNow)) }),
                new ProducerRequest(CurrentTestTopic, 0, new List<Message> { new Message(Encoding.UTF8.GetBytes("2: " + DateTime.UtcNow)) }),
                new ProducerRequest(CurrentTestTopic, 0, new List<Message> { new Message(Encoding.UTF8.GetBytes("3: " + DateTime.UtcNow)) }),
                new ProducerRequest(CurrentTestTopic, 0, new List<Message> { new Message(Encoding.UTF8.GetBytes("4: " + DateTime.UtcNow)) })
            };

            var config = new SyncProducerConfig(clientConfig);
            var producer = new SyncProducer(config);
            producer.MultiSend(requests);
        }
All Usage Examples Of Kafka.Client.Producers.Sync.SyncProducer::MultiSend