21 lines
		
	
	
		
			559 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			559 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Package jitter provides a random jitter
 | |
| package jitter // import "go.unistack.org/micro/v3/util/jitter"
 | |
| 
 | |
| import (
 | |
| 	"time"
 | |
| 
 | |
| 	"go.unistack.org/micro/v3/util/rand"
 | |
| )
 | |
| 
 | |
| // Random returns a random time to jitter with max cap specified
 | |
| func Random(d time.Duration) time.Duration {
 | |
| 	var rng rand.Rand
 | |
| 	v := rng.Float64() * float64(d.Nanoseconds())
 | |
| 	return time.Duration(v)
 | |
| }
 | |
| 
 | |
| func RandomInterval(min, max time.Duration) time.Duration {
 | |
| 	var rng rand.Rand
 | |
| 	return time.Duration(rng.Int63n(max.Nanoseconds()-min.Nanoseconds())+min.Nanoseconds()) * time.Nanosecond
 | |
| }
 |