main.go 916 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package main
  2. import (
  3. "time"
  4. baseapp "hnyfkj.com.cn/rtu/linux/baseapp"
  5. netmgrd "hnyfkj.com.cn/rtu/linux/netmgrd"
  6. )
  7. const MODULE_NAME = "TimeSync"
  8. func main() {
  9. baseapp.InitLogger("")
  10. for {
  11. _, pingOK, tcpOK, _, httpTime := netmgrd.CheckNetwork()
  12. netOK := tcpOK || pingOK
  13. if !netOK {
  14. time.Sleep(time.Second)
  15. continue
  16. }
  17. var err error
  18. if !httpTime.IsZero() { // 优先使用HTTP时间, 实测速度快且精度高
  19. err = netmgrd.SetSystemTime(httpTime)
  20. }
  21. if httpTime.IsZero() || err != nil {
  22. err = netmgrd.SyncNTPTime() // 同步HTTP时间失败, 尝试NTP同步
  23. }
  24. if err != nil {
  25. baseapp.Logger.Errorf("[%s] Error synchronizing system time: %v!!", MODULE_NAME, err)
  26. time.Sleep(time.Second)
  27. continue
  28. }
  29. baseapp.Logger.Infof("[%s] ✅ System time synchronized successfully: %s", MODULE_NAME, time.Now().Format("2006-01-02 15:04:05"))
  30. time.Sleep(time.Hour)
  31. }
  32. }