From 41a9bf370cff977ff8afe122a7610e07fa6c3b80 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期一, 09 十月 2023 17:02:16 +0800
Subject: [PATCH] 加入serf集群

---
 main.go |   51 +++++++++++++++------------------------------------
 1 files changed, 15 insertions(+), 36 deletions(-)

diff --git a/main.go b/main.go
index 00d2599..569d9c6 100644
--- a/main.go
+++ b/main.go
@@ -12,9 +12,6 @@
 	"apsClient/service/plc_address"
 	"fmt"
 	"net/http"
-	"os"
-	"os/signal"
-	"syscall"
 	"time"
 )
 
@@ -28,22 +25,13 @@
 		return
 	}
 
-	if err := nsq.Init(); err != nil {
-		logx.Errorf("nsq Init err:%v", err)
-		return
-	}
-
 	if err := crontask.InitTask(); err != nil {
 		logx.Errorf("crontab task Init err:%v", err)
 		return
 	}
+
 	//鍔犺浇plc鍐欏叆鍦板潃
 	plc_address.LoadAddressFromFile()
-
-	////鎻愬墠鍔犺浇浠诲姟
-	//service.NewTaskService().GetTask()
-
-	//go shutdown()
 
 	// 鍚姩鏁版嵁鍚屾
 	var serfStartChan = make(chan bool)
@@ -58,11 +46,15 @@
 	agent := serf.InitAgent("apsClient", syncTables, sqlitex.GetDB())
 	agent.RegisterClusterEvent(serfClusterEvent)
 	go agent.Serve(serfStartChan)
-
 	<-serfStartChan
 
 	// 鍒ゆ柇褰撳墠闆嗙兢鐘舵��
-	//agent.ClusterStatus == "master"
+	if agent.ClusterStatus != "slave" {
+		if err := nsq.Init(); err != nil {
+			logx.Errorf("nsq Init err:%v", err)
+			return
+		}
+	}
 
 	logx.Infof("apsClient start serve...")
 	server := &http.Server{
@@ -74,29 +66,16 @@
 	logx.Error(server.ListenAndServe().Error())
 }
 
-func shutdown() {
-	quit := make(chan os.Signal, 1)
-	signal.Notify(quit, syscall.SIGKILL, syscall.SIGQUIT, syscall.SIGINT, syscall.SIGTERM)
-	<-quit
-
-	logx.Infof("apsClient exited...")
-	os.Exit(0)
-}
-
 func serfClusterEvent(stat int) {
 	switch stat {
-
-	case serf.EventCreateCluster:
-		// 鍒涘缓闆嗙兢
-	case serf.EventJoinCluster:
-		// 鍔犲叆闆嗙兢
-	case serf.EventLeaveCluster:
-		// 閫�鍑洪泦缇�
-	case serf.EventSlave2Master:
-		// 鍒囨崲涓轰富鑺傜偣
-	case serf.EventMaster2Slave:
-		// 鍒囨崲涓哄瓙鑺傜偣
+	case serf.EventCreateCluster, serf.EventSlave2Master, serf.EventLeaveCluster:
+		if err := nsq.Init(); err != nil {
+			logx.Errorf("nsq Init err:%v", err)
+			return
+		}
+	case serf.EventJoinCluster, serf.EventMaster2Slave:
+		nsq.Stop()
 	}
 
 	fmt.Println("clusterEvent:", stat)
-}
\ No newline at end of file
+}

--
Gitblit v1.8.0