zhangzengfei
2023-10-18 daac628c64069633787588372dea22499ac35396
system-service/serf/handler.go
@@ -4,6 +4,7 @@
   "basic.com/valib/logger.git"
   "basic.com/valib/serf.git/serf"
   "encoding/json"
   "fmt"
   "github.com/golang/protobuf/proto"
   "github.com/hashicorp/memberlist"
   "github.com/satori/go.uuid"
@@ -239,7 +240,7 @@
func HandleEventMemberLeave(ev serf.MemberEvent) {
   if ev.Members != nil && len(ev.Members) == 1 {
      leaveMember := ev.Members[0]
      leaveSql := "update cluster_node set isDelete=1 where node_id='" + leaveMember.Name + "'"
      leaveSql := "update cluster_node set isDelete=1,drift_state='' where node_id='" + leaveMember.Name + "'"
      flag, e := executeSqlByGorm([]string{leaveSql})
      logger.Info("EventMemberLeave,current Members:", ev.Members)
@@ -260,8 +261,13 @@
func HandleEventMemberJoin(ev serf.MemberEvent) {
   if ev.Members != nil && len(ev.Members) == 1 {
      leaveMember := ev.Members[0]
      joinSql := "update cluster_node set isDelete=0 where node_id='" + leaveMember.Name + "'"
      joinMember := ev.Members[0]
      timeUnix := time.Now().Unix()
      fmtTimeStr := time.Unix(timeUnix, 0).Format("2006-01-02 15:04:05")
      //joinSql := "update cluster_node set isDelete=0 where node_id='" + leaveMember.Name + "'"
      joinSql := fmt.Sprintf("update cluster_node set isDelete=0,drift_state='',node_ip='%s',create_time='%s' where node_id='%s'", joinMember.Addr.String()+":"+strconv.Itoa(int(joinMember.Port)), fmtTimeStr, joinMember.Name)
      flag, e := executeSqlByGorm([]string{joinSql})
      logger.Info("EventMemberJoin,current Members:", ev.Members)
@@ -276,6 +282,6 @@
      if e != nil {
         logErr = e.Error()
      }
      executeSqlByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('" + uuid.NewV4().String() + "','" + logLT + "','" + logT + "','" + logSql + "','" + leaveMember.Name + "'," + logResult + ",'" + logErr + "')"})
      executeSqlByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('" + uuid.NewV4().String() + "','" + logLT + "','" + logT + "','" + logSql + "','" + joinMember.Name + "'," + logResult + ",'" + logErr + "')"})
   }
}