示例#1
0
        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;
		}