github.com/micro/go-micro/v2@v2.9.1/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  }