wangchuanjin 2 år sedan
förälder
incheckning
4e003141c5
1 ändrade filer med 12 tillägg och 14 borttagningar
  1. 12 14
      online_syncto_offline/main.go

+ 12 - 14
online_syncto_offline/main.go

@@ -72,24 +72,22 @@ func main() {
 			log.Fatalln(*t, "表的同步数据任务不存在")
 		}
 	} else {
-		go func() {
-			now := time.Now()
-			next := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, time.Local)
-			next = next.Add(time.Minute * time.Duration(Config.Duration))
-			timer := time.NewTimer(next.Sub(now))
-			for {
-				select {
-				case <-timer.C:
-					timer.Reset(time.Minute * time.Duration(Config.Duration))
-					incSyncRun(inc...)
-					fullSyncRun(full...)
-				}
-			}
-		}()
+		start(inc, full)
 		select {}
 	}
 }
 
+func start(inc, full []Entity) {
+	incSyncRun(inc...)
+	fullSyncRun(full...)
+	now := time.Now()
+	next := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, time.Local)
+	next = next.Add(time.Minute * time.Duration(Config.Duration))
+	time.AfterFunc(next.Sub(now), func() {
+		start(inc, full)
+	})
+}
+
 func fullSyncRun(es ...Entity) {
 	log.Println("全量同步任务开始。。。", fmt.Sprintf("%+v", TimeTask))
 	run("", "", es...)