DurationWithJitter returns random duration from "input - input*variance" to "input + input*variance" interval.
(input time.Duration, variancePerc float64)
| 72 | |
| 73 | // DurationWithJitter returns random duration from "input - input*variance" to "input + input*variance" interval. |
| 74 | func DurationWithJitter(input time.Duration, variancePerc float64) time.Duration { |
| 75 | // No duration? No jitter. |
| 76 | if input == 0 { |
| 77 | return 0 |
| 78 | } |
| 79 | |
| 80 | variance := int64(float64(input) * variancePerc) |
| 81 | jitter := rand.Int63n(variance*2) - variance |
| 82 | |
| 83 | return input + time.Duration(jitter) |
| 84 | } |
| 85 | |
| 86 | // DurationWithPositiveJitter returns random duration from "input" to "input + input*variance" interval. |
| 87 | func DurationWithPositiveJitter(input time.Duration, variancePerc float64) time.Duration { |
no outgoing calls