common_init.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package init
  2. import (
  3. "cicv-data-closedloop/kinglong/common/cfg"
  4. "cicv-data-closedloop/kinglong/common/log"
  5. "cicv-data-closedloop/kinglong/common/svc"
  6. "github.com/shirou/gopsutil/cpu"
  7. "runtime"
  8. "time"
  9. )
  10. func Init() {
  11. // 初始化日志配置
  12. log.InitLogConfig()
  13. // 循环打印cpu占用
  14. go ResourceOccupancy()
  15. // 初始化本地配置文件(第1处配置,在本地文件)
  16. cfg.InitLocalConfig()
  17. // 初始化Oss连接信息
  18. cfg.InitOssConfig()
  19. // 初始化业务逻辑配置信息,配置文件在oss上(第2处配置,在oss文件)
  20. cfg.InitCloudConfig()
  21. go cfg.RefreshCloudConfig()
  22. // 初始化数据闭环平台的配置(第3处配置,在数据闭环平台接口)
  23. cfg.InitPlatformConfig()
  24. // 初始化ros节点
  25. cfg.InitRosConfig()
  26. // 维护data目录缓存的包数量
  27. go svc.BagCacheClean()
  28. // 磁盘占用过高时根据缓存策略处理copy目录
  29. go svc.DiskClean()
  30. }
  31. func ResourceOccupancy() {
  32. for {
  33. // 获取 CPU 使用率
  34. cpuPercent, err := cpu.Percent(time.Second, false)
  35. if err != nil {
  36. log.MonitorLogger.Info("获取cpu使用率报错:", err)
  37. return
  38. }
  39. var m runtime.MemStats
  40. runtime.ReadMemStats(&m)
  41. // 计算内存占用百分比
  42. memoryPercent := float64(m.Alloc) / float64(m.Sys) * 100.0
  43. log.MonitorLogger.Info("cpu使用率为:", cpuPercent[0]*100, "%,内存使用率为:", memoryPercent, "%")
  44. // 等待一段时间,例如1秒
  45. time.Sleep(time.Second)
  46. }
  47. }