Golang不定周期的定时器
直接放代码
go func() {
min := 10
max := 30
t1 := time.NewTimer(time.Second * time.Duration(RandInt64(min, max)))
for {
select {
//case <- flag:
// return
case <-t1.C:
log.Debug("Time now: ", time.Now().Format("2006-01-02 15:04:05"))
// dosomething
t1.Reset(time.Second * time.Duration(RandInt64(min, max)))
}
}
}()
func RandInt64(min, max int64) int64 {
if min == max {
return min
}
return rand.Int63n(max-min+1) + min
}
如果我还需要控制关闭这个定时任务怎么办呢?可以打开上面注释掉的//case <- flag:部分
收到flag信号即可关闭。