private void Reconnect(ref LogEntriesConnection connection) { connection?.Dispose(); connection = null; while (connection == null && _closed == 0) { try { connection = new LogEntriesConnection(); } catch (Exception ex) // Unable to connect to Logentries. { Trace.WriteLine($"Connection failed: {ex.Message}."); Thread.Sleep(LogEntriesSettings.PauseBetweenReconnections); } } }
private void MasterConsumeAndSendEvents() { LogEntriesConnection connection = null; try { Reconnect(ref connection); foreach (var datas in _queue.GetConsumingEnumerable()) { DoWithRetry(ref connection, datas.Item1, datas.Item2); UpscaleIfNeeded(); } } finally { connection?.Dispose(); } }
private void ConsumeAndSendEvents() { LogEntriesConnection connection = null; try { Reconnect(ref connection); foreach (var datas in _queue.GetConsumingEnumerable()) { DoWithRetry(ref connection, datas.Item1, datas.Item2); Trace.Write("."); if (!ContinueConsuming()) { Interlocked.Decrement(ref _additionalThreadCount); Trace.WriteLine($"Removed thread. Current count {_additionalThreadCount}. State {(_closed== 1?"closed":"running")}. Queue {_queue.Count}."); return; } } } finally { connection?.Dispose(); } }