孟令鑫 1 жил өмнө
parent
commit
642f3396b7

+ 5 - 5
pji/common/svc/kill_self.go

@@ -78,23 +78,23 @@ func AddKillTimes(info string) {
 		ChannelKillDiskClean <- 1
 		close(ChannelKillRosRecord)
 		KillTimes++
-		c_log.GlobalLogger.Infof("已杀死record打包goroutine,当前自杀进度 %v / %v", KillTimes, KillChannel)
+		c_log.GlobalLogger.Infof("已杀死 record 打包 goroutine,当前自杀进度 %v / %v", KillTimes, KillChannel)
 	case "2":
 		close(ChannelKillDiskClean)
 		KillTimes++
-		c_log.GlobalLogger.Infof("已杀死bag包数量维护goroutine,当前自杀进度 %v / %v", KillTimes, KillChannel)
+		c_log.GlobalLogger.Infof("已杀死 bag 包数量维护 goroutine,当前自杀进度 %v / %v", KillTimes, KillChannel)
 	case "3":
 		close(ChannelKillSubscriber)
 		KillTimes++
-		c_log.GlobalLogger.Infof("已杀死rosnode和ros订阅者goroutine,当前自杀进度 %v / %v", KillTimes, KillChannel)
+		c_log.GlobalLogger.Infof("已杀死 rosnode 和ros 订阅者 goroutine,当前自杀进度 %v / %v", KillTimes, KillChannel)
 	case "4":
 		close(ChannelKillMove)
 		KillTimes++
-		c_log.GlobalLogger.Infof("已杀死bag包移动goroutine,当前自杀进度 %v / %v", KillTimes, KillChannel)
+		c_log.GlobalLogger.Infof("已杀死 bag 包移动 goroutine,当前自杀进度 %v / %v", KillTimes, KillChannel)
 	case "5":
 		close(ChannelKillConsume)
 		KillTimes++
-		c_log.GlobalLogger.Infof("已杀死bag包消费goroutine,当前自杀进度 %v / %v", KillTimes, KillChannel)
+		c_log.GlobalLogger.Infof("已杀死 bag 包消费 goroutine,当前自杀进度 %v / %v", KillTimes, KillChannel)
 	}
 	MutexKill.Unlock()
 }

+ 19 - 3
pji/control/main/control.go

@@ -2,10 +2,12 @@ package main
 
 import (
 	"cicv-data-closedloop/common/config/c_log"
+	"cicv-data-closedloop/common/util"
 	commonConfig "cicv-data-closedloop/pji/common/cfg"
 	commonService "cicv-data-closedloop/pji/common/svc"
 	controlConfig "cicv-data-closedloop/pji/control/package/cfg"
 	"net/rpc"
+	"os"
 	"runtime"
 	"time"
 )
@@ -28,6 +30,8 @@ func init() {
 
 func main() {
 
+	lastStatus := "NONE"
+
 	//  轮询任务接口判断是否有更新
 	for {
 		time.Sleep(time.Duration(2) * time.Second)
@@ -46,11 +50,23 @@ func main() {
 		} else if status == "CHANGE" || status == "NONE" {
 			// 3 发送rpc信号杀死采集程序
 			var masterArgs *commonService.KillSignal
-			if status == "CHANGE" {
+			if lastStatus == "NONE" && status == "CHANGE" {
+				_, err := util.ExecuteWithPath(commonConfig.LocalConfig.RestartCmd.Dir, commonConfig.LocalConfig.RestartCmd.Name, commonConfig.LocalConfig.RestartCmd.Args...)
+				if err != nil {
+					c_log.GlobalLogger.Info("启动新程序失败,【path】=", commonConfig.LocalConfig.RestartCmd.Dir, "【cmd】=", commonConfig.LocalConfig.RestartCmd.Name, commonConfig.LocalConfig.RestartCmd.Args, ":", err)
+					os.Exit(-1)
+				}
+				c_log.GlobalLogger.Info("启动任务,本地执行启动命令:【path】=", commonConfig.LocalConfig.RestartCmd.Dir, "【cmd】=", commonConfig.LocalConfig.RestartCmd.Name, commonConfig.LocalConfig.RestartCmd.Args)
+				lastStatus = status
+				c_log.GlobalLogger.Info("获取数据闭环平台最新配置。")
+				commonConfig.InitPlatformConfig()
+				continue
+			}
+			if lastStatus == "UN_CHANGE" && status == "CHANGE" {
 				masterArgs = &commonService.KillSignal{NodeName: "master", DropUploadData: commonConfig.PlatformConfig.DropUploadData, Restart: true}
 				c_log.GlobalLogger.Info("更新任务,发送rpc重启信号:", masterArgs)
 			}
-			if status == "NONE" {
+			if lastStatus == "UN_CHANGE" && status == "NONE" {
 				masterArgs = &commonService.KillSignal{NodeName: "master", DropUploadData: commonConfig.PlatformConfig.DropUploadData, Restart: false}
 				c_log.GlobalLogger.Info("杀死任务,发送rpc结束信号:", masterArgs)
 			}
@@ -70,6 +86,7 @@ func main() {
 				//KillRpcClient.Close()
 				//continue
 			}
+			lastStatus = status
 			c_log.GlobalLogger.Info("获取数据闭环平台最新配置。")
 			commonConfig.InitPlatformConfig()
 			KillRpcClient.Close()
@@ -77,5 +94,4 @@ func main() {
 			c_log.GlobalLogger.Error("未知的采集任务状态。【status】=", status)
 		}
 	}
-
 }