![[GO]实现定时器指定时间执行,第1张 [GO]实现定时器指定时间执行,第1张](/aiimages/%5BGO%5D%E5%AE%9E%E7%8E%B0%E5%AE%9A%E6%97%B6%E5%99%A8%E6%8C%87%E5%AE%9A%E6%97%B6%E9%97%B4%E6%89%A7%E8%A1%8C.png)
正常使用形式如下 , 例如下面的代码,按照5秒频率进行执行
func cleanVisitorExpire() {
go func() {
log.Println("cleanVisitorExpire start...")
for {
//执行代码
t := time.NewTimer(time.Second * 5)
<-t.C
}
}()
}
现在想要每天晚上12点执行 , 例如下面代码 , 动态计算间隔的时间 , 每天晚上12点执行
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
}
}()
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)