From dd75b36c03049be232a94d97eff1c4a5cc751fb5 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 31 十月 2023 22:08:39 +0800
Subject: [PATCH] 支持设备ID切换

---
 main.go |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/main.go b/main.go
index 8aa04c1..b1a14d7 100644
--- a/main.go
+++ b/main.go
@@ -2,6 +2,7 @@
 
 import (
 	"apsClient/conf"
+	"apsClient/constvar"
 	"apsClient/crontask"
 	"apsClient/model"
 	"apsClient/nsq"
@@ -9,6 +10,7 @@
 	"apsClient/pkg/sqlitex"
 	"apsClient/router"
 	"apsClient/serf"
+	"apsClient/service"
 	"apsClient/service/plc_address"
 	"fmt"
 	"log"
@@ -52,9 +54,18 @@
 		return
 	}
 
+	//浠庢枃浠堕噷璇诲彇褰撳墠鐢熶骇璁惧id
+	conf.Conf.CurrentDeviceID = service.ReadDeviceIDFromFile()
+	if conf.Conf.CurrentDeviceID == "" {
+		conf.Conf.CurrentDeviceID = conf.Conf.System.DeviceId
+	}
+
 	// 鍒ゆ柇褰撳墠闆嗙兢鐘舵��
 	logx.Infof("current agent.ClusterStatus:%v", agent.ClusterStatus)
 	log.Println("current agent.ClusterStatus:", agent.ClusterStatus)
+
+	conf.Conf.SerfClusterStatus = agent.ClusterStatus
+
 	if agent.ClusterStatus != "slave" {
 		if err := nsq.Init(); err != nil {
 			logx.Errorf("nsq Init err:%v", err)
@@ -79,6 +90,7 @@
 }
 
 func serfClusterEvent(stat int) {
+	ChangeClusterStatus(stat)
 	switch stat {
 	case serf.EventCreateCluster, serf.EventSlave2Master, serf.EventLeaveCluster:
 		if err := nsq.Init(); err != nil { //寮�鍚痭sq
@@ -101,3 +113,14 @@
 
 	logx.Infof("serf cluster event: %v", stat)
 }
+
+func ChangeClusterStatus(stat int) {
+	switch stat {
+	case serf.EventSlave2Master, serf.EventCreateCluster:
+		conf.Conf.SerfClusterStatus = constvar.SerfClusterStatusMaster
+	case serf.EventLeaveCluster:
+		conf.Conf.SerfClusterStatus = constvar.SerfClusterStatusNull
+	case serf.EventJoinCluster, serf.EventMaster2Slave:
+		conf.Conf.SerfClusterStatus = constvar.SerfClusterStatusSlave
+	}
+}

--
Gitblit v1.8.0