func (b *ExponentialBackOff) NextBackOff() time.Duration {
	// Make sure we have not gone over the maximum elapsed time.
	if b.MaxElapsedTime != 0 && b.GetElapsedTime() > b.MaxElapsedTime {
		return Stop
	}
	defer b.incrementCurrentInterval()
	return getRandomValueFromInterval(b.RandomizationFactor, rand.Float64(), b.currentInterval)
}
func (b *ExponentialBackOff) NextBackOff() time.Duration {
	
	if b.MaxElapsedTime != 0 && b.GetElapsedTime() > b.MaxElapsedTime {
		return Stop
	}
	defer b.incrementCurrentInterval()
	return getRandomValueFromInterval(b.RandomizationFactor, rand.Float64(), b.currentInterval)
}
func ( b * ExponentialBackOff ) NextBackOff ( ) time . Duration { // Make sure we have not gone over the maximum elapsed time. if b . MaxElapsedTime != 0 && b . GetElapsedTime ( ) > b . MaxElapsedTime { return Stop } defer b . incrementCurrentInterval ( ) return getRandomValueFromInterval ( b . RandomizationFactor , rand . Float64 ( ) , b . currentInterval ) }
// NextBackOff calculates the next backoff interval using the formula:
// 	Randomized interval = RetryInterval +/- (RandomizationFactor * RetryInterval)
NextBackOff calculates the next backoff interval using the formula : Randomized interval = RetryInterval + / - ( RandomizationFactor * RetryInterval )