func jitteredBackoff(rand *rand.Rand, attempt int, min, max time.Duration, coeff float64) time.Duration {
	d := time.Duration(float64(min) * math.Pow(coeff, float64(attempt)))
	if d > max || d <= 0 /* overflow */ {
		d = max
	}
	return min + time.Duration(rand.Int63n(int64(d-min)))
}
func jitteredBackoff(rand *rand.Rand, attempt int, min, max time.Duration, coeff float64) time.Duration {
	d := time.Duration(float64(min) * math.Pow(coeff, float64(attempt)))
	if d > max || d <= 0 /* overflow */ {
		d = max
	}
	return min + time.Duration(rand.Int63n(int64(d-min)))
}
// jitteredBackoff implements the "FullJitter" algorithm presented in
// https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/