slave.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package main
  2. import (
  3. commonConfig "cicv-data-closedloop/aarch64/kinglong/common/config"
  4. commonService "cicv-data-closedloop/aarch64/kinglong/common/service"
  5. slaveConfig "cicv-data-closedloop/aarch64/kinglong/slave/package/config"
  6. slaveService "cicv-data-closedloop/aarch64/kinglong/slave/package/service"
  7. "cicv-data-closedloop/common/config/c_log"
  8. )
  9. // init 初始化函数
  10. func init() {
  11. //runtime.GOMAXPROCS(1)
  12. c_log.InitLog("mnt/media/sda1/cicv-data-closedloop/log/", "kinglong-master")
  13. // 初始化本地配置文件(第1处配置,在本地文件)
  14. commonConfig.InitLocalConfig()
  15. // 初始化Oss连接信息
  16. commonConfig.InitOssConfig()
  17. // 初始化业务逻辑配置信息,配置文件在oss上(第2处配置,在oss文件)
  18. commonConfig.InitCloudConfig()
  19. go commonConfig.RefreshCloudConfig()
  20. // 初始化数据闭环平台的配置(第3处配置,在数据闭环平台接口)
  21. commonConfig.InitPlatformConfig()
  22. // 初始化ros节点
  23. commonConfig.InitRosConfig()
  24. // 维护data目录缓存的包数量
  25. go commonService.BagCacheClean()
  26. // 磁盘占用过高时根据缓存策略处理copy目录
  27. go commonService.DiskClean()
  28. slaveConfig.InitTcpListener()
  29. commonConfig.InitKillSignalListener(commonConfig.CloudConfig.Hosts[1].Ip)
  30. // 等待重启,接收到重启信号,会把信号分发给以下channel
  31. go commonService.WaitKillSelf()
  32. }
  33. // main 主函数
  34. func main() {
  35. // 1 负责打包数据到data目录
  36. go commonService.BagRecord(commonConfig.CloudConfig.Hosts[1].Name)
  37. // 2 负责监控故障,并修改timeWindow
  38. go slaveService.PrepareTimeWindowProducerQueue()
  39. // 3
  40. go slaveService.RunTimeWindowProducerQueue()
  41. // 4 排队运行时间窗口
  42. go commonService.RunTimeWindowConsumerQueue(commonConfig.CloudConfig.Hosts[1].Name)
  43. // 阻塞主线程,等待其他线程执行。
  44. select {}
  45. }