正常使用形式如下 , 例如下面的代码,按照5秒频率进行执行
代码语言:javascript复制func cleanVisitorExpire() {
go func() {
log.Println("cleanVisitorExpire start...")
for {
//执行代码
t := time.NewTimer(time.Second * 5)
<-t.C
}
}()
}
现在想要每天晚上12点执行 , 例如下面代码 , 动态计算间隔的时间 , 每天晚上12点执行
代码语言:javascript复制func cleanLimitQueue() {
go func() {
for {
log.Println("cleanLimitQueue start...")
//执行功能
now := time.Now()
// 计算下一个零点
next := now.Add(time.Hour * 24)
next = time.Date(next.Year(), next.Month(), next.Day(), 0, 0, 0, 0, next.Location())
t := time.NewTimer(next.Sub(now))
<-t.C
}
}()
}