github.com/annwntech/go-micro/v2@v2.9.5/util/jitter/jitter.go (about) 1 // Package jitter provides a random jitter 2 package jitter 3 4 import ( 5 "math/rand" 6 "time" 7 ) 8 9 var ( 10 r = rand.New(rand.NewSource(time.Now().UnixNano())) 11 ) 12 13 // Do returns a random time to jitter with max cap specified 14 func Do(d time.Duration) time.Duration { 15 v := r.Float64() * float64(d.Nanoseconds()) 16 return time.Duration(v) 17 }