From 0bfb4e53db6d0cad8fe7a59945e86ac3adc7744e Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期日, 08 十月 2023 14:12:40 +0800
Subject: [PATCH] 添加数据同步服务

---
 main.go |   42 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 41 insertions(+), 1 deletions(-)

diff --git a/main.go b/main.go
index f9585bf..00d2599 100644
--- a/main.go
+++ b/main.go
@@ -6,7 +6,9 @@
 	"apsClient/model"
 	"apsClient/nsq"
 	"apsClient/pkg/logx"
+	"apsClient/pkg/sqlitex"
 	"apsClient/router"
+	"apsClient/serf"
 	"apsClient/service/plc_address"
 	"fmt"
 	"net/http"
@@ -41,7 +43,27 @@
 	////鎻愬墠鍔犺浇浠诲姟
 	//service.NewTaskService().GetTask()
 
-	go shutdown()
+	//go shutdown()
+
+	// 鍚姩鏁版嵁鍚屾
+	var serfStartChan = make(chan bool)
+	// 闇�瑕佸悓姝ョ殑琛�
+	var syncTables = []string{
+		"procedures",
+		"process_model",
+		"production_progress",
+		"work_order",
+	}
+
+	agent := serf.InitAgent("apsClient", syncTables, sqlitex.GetDB())
+	agent.RegisterClusterEvent(serfClusterEvent)
+	go agent.Serve(serfStartChan)
+
+	<-serfStartChan
+
+	// 鍒ゆ柇褰撳墠闆嗙兢鐘舵��
+	//agent.ClusterStatus == "master"
+
 	logx.Infof("apsClient start serve...")
 	server := &http.Server{
 		Addr:         fmt.Sprintf(":%d", conf.Conf.System.Port),
@@ -60,3 +82,21 @@
 	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:
+		// 鍒囨崲涓哄瓙鑺傜偣
+	}
+
+	fmt.Println("clusterEvent:", stat)
+}
\ No newline at end of file

--
Gitblit v1.8.0