| 1234567891011121314151617181920212223 |
- // Copyright 2016 Michal Witkowski. All Rights Reserved.
- // See LICENSE for licensing terms.
- /*
- Backoff Helper Utilities
- Implements common backoff features.
- */
- package backoffutils
- import (
- "math/rand"
- "time"
- )
- // JitterUp adds random jitter to the duration.
- //
- // This adds or substracts time from the duration within a given jitter fraction.
- // For example for 10s and jitter 0.1, it will returna time within [9s, 11s])
- func JitterUp(duration time.Duration, jitter float64) time.Duration {
- multiplier := jitter * (rand.Float64()*2 - 1)
- return time.Duration(float64(duration) * (1 + multiplier))
- }
|