Я использую System.Azure.EventHubs.EventDataBatch для отправки пакета событий в концентратор событий Azure.
После успешной отправки пакета я хотел бы очистить коллекцию событий, а затем добавить новые события в концентратор событий, чтобы отправить следующий пакет.
Поскольку EventDataBatch - это список событий, я ожидал, что будет функция Clear (), которая позволит очистить коллекцию. Но, к сожалению, нет. Кто-нибудь знает чистый способ добиться этого?
В качестве альтернативы, я думаю избавиться от текущего EventDataBatch, а затем создать новый EventDataBatch с помощью EventHubClient.CreateBatch ()
var myEventBatch = eventHubClient.CreateBatch();
foreach(var message in messages)
{
if(!myEventBatch.TryAdd(message))
{
await eventHubClient.SendAsync(myEventBatch).ConfigureAwait(false);
//myEventBatch.Clear();
//myEventBatch = eventHubClient.CreateBatch();
myEventBatch = new EventDataBatch(256000);
myEventBatch.TryAdd(message);
}
}