소스 검색

refactor: Modify the master start-stop logic

HeWang 7 달 전
부모
커밋
ae564c4c8e
2개의 변경된 파일16개의 추가작업 그리고 8개의 파일을 삭제
  1. 7 8
      aarch64/pjibot_guide/control/main.go
  2. 9 0
      aarch64/pjibot_guide/control/pkg/judge_cloud.go

+ 7 - 8
aarch64/pjibot_guide/control/main.go

@@ -21,6 +21,7 @@ var (
 	lastLocalStatus = "idle"
 	lastCloudStatus = "NONE"
 	launchedFlag    = false
+	configuredFlag  = false
 )
 
 func init() {
@@ -40,10 +41,11 @@ func init() {
 }
 
 func main() {
-	localTurnLength := 2  // s
-	cloudTurnLength := 60 // s
+	localTurnLength := 2   // s
+	cloudTurnLength := 60  // s
+	configTurnLength := 60 // s
 	overallTurnLength := localTurnLength
-	stopTimeWindow := 10 // min
+	stopTime := 10 // min
 
 	// 更新本地任务状态
 	go pkg.GetLocalStatus(&localStatus, &lastLocalStatus, localTurnLength)
@@ -83,7 +85,7 @@ func main() {
 		if lastLocalStatus == "running" && localStatus == "idle" {
 			if launchedFlag {
 				// 等待数据上传(如果有触发)
-				time.Sleep(time.Duration(stopTimeWindow) * time.Minute)
+				time.Sleep(time.Duration(stopTime) * time.Minute)
 				// 发送rpc信号杀死采集程序
 				var killArgs commonService.KillSignal
 				killArgs = commonService.KillSignal{NodeName: "master", DropUploadData: commonConfig.PlatformConfig.DropUploadData, Restart: false}
@@ -115,10 +117,7 @@ func main() {
 		}
 
 		// 云端任务状态负责更新配置
-		if cloudStatus == "CHANGE" {
-			commonConfig.InitPlatformConfig()
-			continue
-		}
+		go pkg.GetCloudConfig(cloudStatus, lastCloudStatus, configTurnLength)
 
 		//if cloudStatus == "UN_CHANGE" {
 		//	continue

+ 9 - 0
aarch64/pjibot_guide/control/pkg/judge_cloud.go

@@ -26,3 +26,12 @@ func GetCloudStatus(cloudStatus *string, lastCloudStatus *string, turnLength int
 		*cloudStatus = taskStatus
 	}
 }
+
+func GetCloudConfig(cloudStatus string, lastCloudStatus string, turnLength int) {
+	for {
+		time.Sleep(time.Duration(turnLength) * time.Second)
+		if (lastCloudStatus == "NONE" || lastCloudStatus == "UN_CHANGE") && cloudStatus == "CHANGE" {
+			commonConfig.InitPlatformConfig()
+		}
+	}
+}