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; }