agent/utils/retry/exponential_backoff.go
func NewExponentialBackoff(min, max time.Duration, jitterMultiple, multiple float64) *ExponentialBackoff {
	return &ExponentialBackoff{
		start:          min,
		current:        min,
		max:            max,
		jitterMultiple: jitterMultiple,
		multiple:       multiple,
	}
}
func NewExponentialBackoff(min, max time.Duration, jitterMultiple, multiple float64) *ExponentialBackoff {
	return &ExponentialBackoff{
		start:          min,
		current:        min,
		max:            max,
		jitterMultiple: jitterMultiple,
		multiple:       multiple,
	}
}
func NewExponentialBackoff ( min , max time . Duration , jitterMultiple , multiple float64 ) * ExponentialBackoff { return & ExponentialBackoff { start : min , current : min , max : max , jitterMultiple : jitterMultiple , multiple : multiple , } }
// NewSimpleBackoff creates a Backoff which ranges from min to max increasing by
// multiple each time. (t = start * multiple * n for the nth iteration)
// It also adds (and yes, the jitter is always added, never
// subtracted) a random amount of jitter up to jitterMultiple percent (that is,
// jitterMultiple = 0.0 is no jitter, 0.15 is 15% added jitter). The total time
// may exceed "max" when accounting for jitter, such that the absolute max is
// max + max * jiterMultiple
NewSimpleBackoff creates a Backoff which ranges from min to max increasing by multiple each time . ( t = start * multiple * n for the nth iteration ) It also adds ( and yes the jitter is always added never subtracted ) a random amount of jitter up to jitterMultiple percent ( that is jitterMultiple = 0 . 0 is no jitter 0 . 15 is 15% added jitter ) . The total time may exceed max when accounting for jitter such that the absolute max is max + max * jiterMultiple