From 1f819a31e020d4c861807245d35f504ed0d910c3 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期三, 04 十二月 2019 13:38:27 +0800
Subject: [PATCH] fix specmembername not found,cannot GetTableDataFromCluster

---
 agent.go |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/agent.go b/agent.go
index ceb7479..71d0439 100644
--- a/agent.go
+++ b/agent.go
@@ -240,10 +240,19 @@
 		if event.EventType() == serf.EventMemberLeave {
 			if ev.Members !=nil && len(ev.Members) ==1 {
 				leaveMember := ev.Members[0]
-				leaveSql := "delete from cluster_node where node_id='"+leaveMember.Name+"'"
+				leaveSql := "update cluster_node set isDelete=1 where node_id='"+leaveMember.Name+"'"
 				ExecuteSqlByGorm([]string{ leaveSql })
 
 				logger.Info("EventMemberLeave,current Members:",ev.Members)
+			}
+			return
+		} else if event.EventType() == serf.EventMemberJoin {
+			if ev.Members !=nil && len(ev.Members) ==1 {
+				leaveMember := ev.Members[0]
+				leaveSql := "update cluster_node set isDelete=0 where node_id='"+leaveMember.Name+"'"
+				ExecuteSqlByGorm([]string{ leaveSql })
+
+				logger.Info("EventMemberJoin,current Members:",ev.Members)
 			}
 			return
 		}
@@ -496,6 +505,9 @@
 		}
 	}
 	logger.Info("mbs:",mbs,"a.conf.BindAddr:",a.conf.BindAddr,"specmembername:",specmembername)
+	if specmembername == "" {//濡傛灉鏈壘鍒扮洰鏍囪妭鐐癸紝璇存槑褰撳墠闆嗙兢鍐呴櫎浜嗘湰鑺傜偣锛屾病鏈夊叾浠栧彲鐢ㄨ妭鐐�
+		return nil,errors.New("specmembername not found")
+	}
 
 	//query: get db file.
 	params := serf.QueryParam{

--
Gitblit v1.8.0