/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
cloud/disk_manager/internal/pkg/common/util.go
55 строк
1 KB
Sergei
Move WaitForRandomDuration() to cloud/disk_manager/internal/pkg/common/util.go (#2083)
20 сен 2024, 15:10
Не верифицирован
20 сен 2024, 15:10
37d072f
Код
Авторство
О чём код?
package common import ( "math/rand" "time" ) //////////////////////////////////////////////////////////////////////////////// func Find(slice []string, value string) bool { for _, v := range slice { if v == value { return true } } return false } func Remove(slice []string, value string) []string { for i, v := range slice { if v == value { return append(slice[:i], slice[i+1:]...) } } return slice } func RandomShuffle(slice []string) { rand.Seed(time.Now().UnixNano()) rand.Shuffle( len(slice), func(i, j int) { slice[i], slice[j] = slice[j], slice[i] }, ) } func RandomDuration(min time.Duration, max time.Duration) time.Duration { rand.Seed(time.Now().UnixNano()) x := min.Microseconds() y := max.Microseconds() if y <= x { return min } return time.Duration(x+rand.Int63n(y-x)) * time.Microsecond } func RandomElement(slice []string) string { rand.Seed(time.Now().UnixNano()) return slice[rand.Intn(len(slice))] } func WaitForRandomDuration(min time.Duration, max time.Duration) { time.Sleep(RandomDuration(min, max)) }