/// <summary> /// Persist the in-memory telemetry items. /// </summary> internal void Flush() { IEnumerable <ITelemetry> enumerable = telemetryBuffer.Dequeue(); if (enumerable != null && enumerable.Any()) { byte[] content = JsonSerializer.Serialize(enumerable); Transmission transmission = new Transmission(EndpointAddress, content, "application/x-json-stream", JsonSerializer.CompressionType); storage.EnqueueAsync(transmission).ConfigureAwait(false).GetAwaiter() .GetResult(); } }
/// <summary> /// Flushes the in-memory buffer and send it. /// </summary> private void DequeueAndSend() { lock (sendingLockObj) { IEnumerable <ITelemetry> telemetryItems = buffer.Dequeue(); try { Send(telemetryItems).ConfigureAwait(false).GetAwaiter().GetResult(); } catch (Exception ex) { CoreEventSource.Log.LogVerbose("DequeueAndSend: Failed Sending: Exception: " + ex.ToString()); } } }