瀏覽代碼

新增1小时重新同步一次NTP时间的操作

niujiuru 1 月之前
父節點
當前提交
a4eaad9f7f
共有 1 個文件被更改,包括 8 次插入2 次删除
  1. 8 2
      netmgrd/netmgrd.go

+ 8 - 2
netmgrd/netmgrd.go

@@ -19,6 +19,7 @@ var (
 	isOnline        atomic.Bool  // 标记是否联网
 	offlineStartTs  atomic.Int64 // 离线开始时间
 	isSyncNTPTimeOK atomic.Bool  // 标记本地时间是否已同步成功
+	lastSyncNTPTime time.Time    // 记录同步网络时间成功的时间
 	curNetType      NetType      // 当前的网络类型: 有线、蜂窝
 	mu1             sync.Mutex
 	isRunning1      bool
@@ -85,14 +86,19 @@ func serviceRun() {
 				offlineStartTs.Store(0)
 
 				if isSyncNTPTimeOK.Load() {
-					t.Reset(interval2)
-					continue
+					if time.Since(lastSyncNTPTime) >= (time.Duration(60) * time.Minute) { // 1小时后需要再次同步NTP时间
+						isSyncNTPTimeOK.Store(false)
+					} else {
+						t.Reset(interval2)
+						continue
+					}
 				}
 
 				err := SyncNTPTime()
 				if err == nil {
 					isSyncNTPTimeOK.Store(true)
 					baseapp.Logger.Infof("[%s] NTP时间已同步", MODULE_NAME)
+					lastSyncNTPTime = time.Now()
 					t.Reset(interval2)
 					continue
 				} else {