private void WriteStats()
        {
            try
            {
                Logger.Info("Starting stats writer thread...");
                while (true)
                {
                    var item = _statsQueue.Dequeue(1, TimeSpan.FromMilliseconds(250), CancellationToken.None).FirstOrDefault();
                    if (item == null)
                    {
                        continue;
                    }

                    InsertStatistics(item.Item1.Id, item.Item3);
                    _metricsForwarderCoordinator.HandleMetricsForwarding(item.Item1, item.Item2, item.Item3);
                }
            }
            catch (ThreadInterruptedException)
            {
                Logger.Info("Exiting stats writer thread...");
            }
        }
        private void WriteStats()
        {
            try
            {
                _logger.InfoFormat("Starting stats writer thread...");
                while (true)
                {
                    Tuple <EndpointIdentity, EndpointMetadata, EndpointHealth> item;
                    if (_statsQueue.TryTake(out item, TimeSpan.FromMilliseconds(250)))
                    {
                        InsertStatistics(item.Item1.Id, item.Item3);
                        _metricsForwarderCoordinator.HandleMetricsForwarding(item.Item1, item.Item2, item.Item3);
                    }

                    Thread.Sleep(1);
                }
            }
            catch (ThreadInterruptedException)
            {
                _logger.InfoFormat("Exiting stats writer thread...");
            }
        }