1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
package util
import (
"log"
"time"
)
//golang 定时器,启动的时候执行一次,以后每天晚上12点执行
func StartTimer(f func()) {
go func() {
for {
//系统启动10秒后 开始执行 迁移任务
time.Sleep(time.Second*10)
log.Printf("开始执行 mysql数据迁移clickhouse任务 %+v\n", (time.Now()))
f()
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
}
}()
}
|