private void IncrementServerUnreachable() { // If we've gotten too many in the last 2 wait period, then increase the wait time if (_serverUnreachableErrorsLast2WaitPeriods >= 2) { if (_serverUnreachableWaitSeconds <= ServerUnreachableMaxWaitSeconds) { _serverUnreachableWaitSeconds = (int)(_serverUnreachableWaitSeconds * 1.5); // want twice the wait period, and then twice that many seconds because it's ticked every 500ms _serverUnreachableCounter = new AggregateCounter(_serverUnreachableWaitSeconds * 4); } } else if (_serverUnreachableErrorsLast2WaitPeriods == 0 && _serverUnreachableWaitSeconds != ServerUnreachableBaseWaitSeconds) { _serverUnreachableWaitSeconds = ServerUnreachableBaseWaitSeconds; _serverUnreachableCounter = new AggregateCounter(_serverUnreachableWaitSeconds * 4); } Interlocked.Increment(ref _serverUnreachableErrors); _serverUnreachableCounter.IncrementCounter(); _lastServerUnreachable = DateTime.Now; }
private void IncrementServerUnreachable() { // If we've gotten too many in the last 2 wait period, then increase the wait time if (_serverUnreachableErrorsLast2WaitPeriods >= 2) { if (_serverUnreachableWaitSeconds <= ServerUnreachableMaxWaitSeconds) { _serverUnreachableWaitSeconds = (int) (_serverUnreachableWaitSeconds*1.5); // want twice the wait period, and then twice that many seconds because it's ticked every 500ms _serverUnreachableCounter = new AggregateCounter(_serverUnreachableWaitSeconds*4); } } else if (_serverUnreachableErrorsLast2WaitPeriods == 0 && _serverUnreachableWaitSeconds != ServerUnreachableBaseWaitSeconds) { _serverUnreachableWaitSeconds = ServerUnreachableBaseWaitSeconds; _serverUnreachableCounter = new AggregateCounter(_serverUnreachableWaitSeconds*4); } Interlocked.Increment(ref _serverUnreachableErrors); _serverUnreachableCounter.IncrementCounter(); _lastServerUnreachable = DateTime.Now; }