master.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package main
  2. import (
  3. commonConfig "cicv-data-closedloop/kinglong/common/cfg"
  4. commonInit "cicv-data-closedloop/kinglong/common/init"
  5. "cicv-data-closedloop/kinglong/common/log"
  6. commonService "cicv-data-closedloop/kinglong/common/svc"
  7. masterConfig "cicv-data-closedloop/kinglong/master/pkg/cfg"
  8. masterService "cicv-data-closedloop/kinglong/master/pkg/svc"
  9. "runtime"
  10. )
  11. func init() {
  12. // 初始化日志配置
  13. runtime.GOMAXPROCS(1)
  14. log.InitLogConfig("kinglong-master")
  15. commonInit.Init()
  16. // 初始化TCP连接,用于发送时间窗口到从节点
  17. masterConfig.InitTcpConfig()
  18. // 初始化加载触发器插件文件
  19. masterConfig.InitTriggerConfig()
  20. // 初始化rpc监听
  21. commonConfig.InitKillSignalListener(commonConfig.CloudConfig.Hosts[0].Ip)
  22. // 等待重启,接收到重启信号,会把信号分发给以下channel
  23. go commonService.WaitKillSelf()
  24. }
  25. func main() {
  26. // 1 负责打包数据到data目录
  27. go commonService.BagRecord(commonConfig.CloudConfig.Hosts[0].Name)
  28. // 2 启动第4个线程,负责监控故障,并修改timeWindow
  29. go masterService.PrepareTimeWindowProducerQueue()
  30. // 3
  31. go masterService.RunTimeWindowProducerQueue()
  32. // 4 排队运行时间窗口
  33. go commonService.RunTimeWindowConsumerQueue(commonConfig.CloudConfig.Hosts[0].Name)
  34. // 阻塞主线程,等待其他线程执行。
  35. select {}
  36. }