private async Task ProcessPendingEventsAsync()
{
while (true)
{
try
{
List<JObject> pendingEvents;
lock (_pendingEvents)
{
pendingEvents = new List<JObject>(_pendingEvents);
_pendingEvents.Clear();
}
if (!pendingEvents.Any())
{
_eventsLock.WaitOne();
continue;
}
foreach (var pendingEvent in pendingEvents)
{
await SendToAzureEventHubAsync(pendingEvent);
}
}
catch (Exception exception)
{
Log.Error(exception, "Error while processing pending EventHub events.");
}
}
}