package main import ( commonConfig "cicv-data-closedloop/aarch64/pjisuv/common/config" commonService "cicv-data-closedloop/aarch64/pjisuv/common/service" slaveConfig "cicv-data-closedloop/aarch64/pjisuv/slave/package/config" slaveService "cicv-data-closedloop/aarch64/pjisuv/slave/package/service" "cicv-data-closedloop/common/config/c_log" ) // init 初始化函数 func init() { //runtime.GOMAXPROCS(1) c_log.InitLog(commonConfig.LogDir, commonConfig.SlaveLogPrefix) // 初始化本地配置文件(第1处配置,在本地文件) commonConfig.InitLocalConfig() // 初始化Oss连接信息 commonConfig.InitOssConfig() // 初始化业务逻辑配置信息,配置文件在oss上(第2处配置,在oss文件) commonConfig.InitCloudConfig() if commonConfig.CloudConfig.RefreshCloudConfig { go commonConfig.RefreshCloudConfig() } // 初始化数据闭环平台的配置(第3处配置,在数据闭环平台接口) commonConfig.InitPlatformConfig() // 初始化ros节点 commonConfig.InitRosConfig() // 发送资源占用信息 go commonConfig.SendResourceUsage() // 维护data目录缓存的包数量 go commonService.BagCacheClean() // 磁盘占用过高时根据缓存策略处理copy目录 go commonService.DiskClean() slaveConfig.InitTcpListener() commonConfig.InitKillSignalListener(commonConfig.CloudConfig.Hosts[1].Ip) // 等待重启,接收到重启信号,会把信号分发给以下channel go commonService.WaitKillSelf() } // main 主函数 func main() { // 1 负责打包数据到data目录 go commonService.BagRecord(commonConfig.CloudConfig.Hosts[1].Name) // 2 负责监控故障,并修改timeWindow go slaveService.PrepareTimeWindowProducerQueue() // 3 go slaveService.RunTimeWindowProducerQueue() // 4 排队运行时间窗口 go commonService.RunTimeWindowConsumerQueue() // 阻塞主线程,等待其他线程执行。 select {} }