孟令鑫 1 年之前
父節點
當前提交
644a9f3649
共有 3 個文件被更改,包括 39 次插入28 次删除
  1. 24 4
      kinglong/control/main/control.go
  2. 15 5
      pji/control/main/control.go
  3. 0 19
      pji/control/package/cfg/control_rpc_client.go

+ 24 - 4
kinglong/control/main/control.go

@@ -5,6 +5,8 @@ import (
 	"cicv-data-closedloop/kinglong/common/log"
 	commonService "cicv-data-closedloop/kinglong/common/svc"
 	controlConfig "cicv-data-closedloop/kinglong/control/pkg/cfg"
+	commonConfig "cicv-data-closedloop/pji/common/cfg"
+	"net/rpc"
 	"time"
 )
 
@@ -53,17 +55,35 @@ func main() {
 				masterArgs = &commonService.KillSignal{NodeName: "master", DropUploadData: cfg.PlatformConfig.DropUploadData, Restart: false}
 				slaveArgs = &commonService.KillSignal{NodeName: "slave", DropUploadData: cfg.PlatformConfig.DropUploadData, Restart: false}
 			}
-			var reply int
-			err = controlConfig.KillRpcClientMaster.Call("KillService.Kill", masterArgs, &reply)
+
+			KillRpcClientMaster, err := rpc.Dial("tcp", commonConfig.CloudConfig.Hosts[0].Ip+":"+commonConfig.CloudConfig.RpcPort)
 			if err != nil {
-				log.GlobalLogger.Error("发送rpc请求到master失败:", err)
+				log.GlobalLogger.Error("创建rpc连接master失败:", err)
+				KillRpcClientMaster.Close()
+				continue
 			}
-			err = controlConfig.KillRpcClientSlave.Call("KillService.Kill", slaveArgs, &reply)
+			KillRpcClientSlave, err := rpc.Dial("tcp", commonConfig.CloudConfig.Hosts[1].Ip+":"+commonConfig.CloudConfig.RpcPort)
 			if err != nil {
+				log.GlobalLogger.Error("创建rpc连接slave失败:", err)
+				KillRpcClientSlave.Close()
+				continue
+			}
+
+			reply := 0
+			if err = KillRpcClientMaster.Call("KillService.Kill", masterArgs, &reply); err != nil {
+				log.GlobalLogger.Error("发送rpc请求到master失败:", err)
+				KillRpcClientMaster.Close()
+				continue
+			}
+			if err = KillRpcClientSlave.Call("KillService.Kill", slaveArgs, &reply); err != nil {
 				log.GlobalLogger.Error("发送rpc请求到slave失败:", err)
+				KillRpcClientSlave.Close()
+				continue
 			}
 			// 获取一下最新配置
 			cfg.InitPlatformConfig()
+			KillRpcClientMaster.Close()
+			KillRpcClientSlave.Close()
 		} else {
 			log.GlobalLogger.Error("未知的采集任务状态。status=", status)
 		}

+ 15 - 5
pji/control/main/control.go

@@ -2,9 +2,11 @@ package main
 
 import (
 	"cicv-data-closedloop/common/config/c_log"
+	"cicv-data-closedloop/kinglong/common/cfg"
 	commonConfig "cicv-data-closedloop/pji/common/cfg"
 	commonService "cicv-data-closedloop/pji/common/svc"
 	controlConfig "cicv-data-closedloop/pji/control/package/cfg"
+	"net/rpc"
 	"runtime"
 	"time"
 )
@@ -22,7 +24,6 @@ func init() {
 	// 首先初始化平台配置。
 	commonConfig.InitPlatformConfig()
 	// 初始化rpc客户端,用于杀死旧的采集程序
-	controlConfig.InitRpcClient()
 	controlConfig.InitNacos()
 }
 
@@ -30,7 +31,7 @@ func main() {
 
 	//  轮询任务接口判断是否有更新
 	for {
-		time.Sleep(time.Duration(1) * time.Second)
+		time.Sleep(time.Duration(2) * time.Second)
 		// 1 获取当前设备的任务的 status
 		status, err := commonConfig.GetStatus(commonConfig.PlatformConfig.TaskConfigId)
 		if err != nil {
@@ -41,7 +42,6 @@ func main() {
 		// UN_CHANGE 没有新的任务,无需更改
 		// CHANGE 有新的任务,需要杀死旧的任务并重启
 		// NONE 设备没有配置任务,需要杀死旧的任务
-		c_log.GlobalLogger.Info("当前任务状态为【status】=", status)
 		if status == "UN_CHANGE" {
 			continue
 		} else if status == "CHANGE" || status == "NONE" {
@@ -55,14 +55,24 @@ func main() {
 				c_log.GlobalLogger.Info("杀死任务,发送rpc结束信号。")
 				masterArgs = &commonService.KillSignal{NodeName: "master", DropUploadData: commonConfig.PlatformConfig.DropUploadData, Restart: false}
 			}
-			var reply int
-			err = controlConfig.KillRpcClient.Call("KillService.Kill", masterArgs, &reply)
+
+			KillRpcClient, err := rpc.Dial("tcp", cfg.CloudConfig.Hosts[0].Ip+":"+cfg.CloudConfig.RpcPort)
+			if err != nil {
+				c_log.GlobalLogger.Error("创建rpc连接master失败:", err)
+				KillRpcClient.Close()
+				continue
+			}
+
+			reply := 0
+			err = KillRpcClient.Call("KillService.Kill", masterArgs, &reply)
 			if err != nil {
 				c_log.GlobalLogger.Error("发送rpc请求到master失败:", err)
+				KillRpcClient.Close()
 				continue
 			}
 			// 获取一下最新配置
 			commonConfig.InitPlatformConfig()
+			KillRpcClient.Close()
 		} else {
 			c_log.GlobalLogger.Error("未知的采集任务状态。status=", status)
 		}

+ 0 - 19
pji/control/package/cfg/control_rpc_client.go

@@ -1,19 +0,0 @@
-package cfg
-
-import (
-	"cicv-data-closedloop/common/config/c_log"
-	"cicv-data-closedloop/pji/common/cfg"
-	"net/rpc"
-	"os"
-)
-
-var KillRpcClient *rpc.Client
-
-func InitRpcClient() {
-	var err error
-	KillRpcClient, err = rpc.Dial("tcp", cfg.CloudConfig.Hosts[0].Ip+":"+cfg.CloudConfig.RpcPort)
-	if err != nil {
-		c_log.GlobalLogger.Error("创建rpc连接master失败,程序退出:", err)
-		os.Exit(-1)
-	}
-}