master.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package main
  2. import (
  3. "cicv-data-closedloop/common/config/c_log"
  4. commonConfig "cicv-data-closedloop/pji/common/cfg"
  5. commonInit "cicv-data-closedloop/pji/common/init"
  6. commonService "cicv-data-closedloop/pji/common/svc"
  7. masterConfig "cicv-data-closedloop/pji/master/package/cfg"
  8. masterService "cicv-data-closedloop/pji/master/package/svc"
  9. "runtime"
  10. "time"
  11. )
  12. func init() {
  13. runtime.GOMAXPROCS(1)
  14. // 初始化日志配置
  15. c_log.InitLog("/root/rosbag-handle/log/", "pji-master")
  16. commonInit.Init()
  17. masterConfig.InitTriggerConfig()
  18. commonConfig.InitKillSignalListener(commonConfig.CloudConfig.Hosts[0].Ip)
  19. // 等待重启,接收到重启信号,会把信号分发给以下channel
  20. go commonService.WaitKillSelf()
  21. masterConfig.InitNacos()
  22. }
  23. func main() {
  24. // 1 负责打包数据到data目录
  25. go commonService.BagRecord(commonConfig.CloudConfig.Hosts[0].Name)
  26. time.Sleep(time.Duration(10) * time.Second)
  27. // 2 负责监控故障,并修改timeWindow
  28. go masterService.PrepareTimeWindowProducerQueue()
  29. // 3 将时间窗口内的包全部move出去,并等待当前时间窗口结束触发上传
  30. go masterService.RunTimeWindowProducerQueue()
  31. // 4 排队运行时间窗口
  32. go commonService.RunTimeWindowConsumerQueue(commonConfig.CloudConfig.Hosts[0].Name)
  33. // 阻塞主线程,等待其他线程执行。
  34. select {}
  35. }