master.go 1.2 KB

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