基于serf的数据库同步模块库
liuxiaolong
2019-10-10 34e5eae1c368848300bfa4ea1ead3b5e7c2a8a64
searcher.go
@@ -2,7 +2,7 @@
import (
   "encoding/json"
   "fmt"
   "basic.com/valib/logger.git"
   "time"
   "github.com/hashicorp/memberlist"
@@ -54,10 +54,10 @@
func (d *delegate) NotifyMsg(b []byte) {
   // logMsg(b)
   n := NodeInfo{}
   if err:= json.Unmarshal(b, &n);err !=nil {
   if err:= json.Unmarshal(b, &n);err ==nil {
      members[n.NodeID] = n
   } else {
      fmt.Println("NotifyMsg msg unmarshal err")
      logger.Error("NotifyMsg msg unmarshal err")
   }
}
@@ -70,11 +70,11 @@
   node := nodeInfo{}
   if err := json.Unmarshal(b, &node); err != nil {
      fmt.Println("Umarshal failed:", err)
      logger.Error("Umarshal failed:", err)
      return
   }
   fmt.Println(node)
   logger.Info(node)
}
func CreateSearchNode(key string) (*memberlist.Memberlist, error) {
@@ -87,7 +87,7 @@
   keyring, err := memberlist.NewKeyring(nil, []byte(key))
   if err != nil {
      fmt.Printf("Failed to restore keyring: %s", err)
      logger.Error("Failed to restore keyring: %s", err)
      return nil, err
   }
   conf.Keyring = keyring
@@ -98,7 +98,7 @@
func CreateSearchNodeWhitClose(key string, delay time.Duration) map[string]NodeInfo {
   m, err := CreateSearchNode(key)
   if err == nil {
      // fmt.Printf("Local member %s:%d\n", m.LocalNode().Addr, m.LocalNode().Port)
      //logger.Info("Local member %s:%d\n", m.LocalNode().Addr, m.LocalNode().Port)
      time.Sleep(delay)
      m.Shutdown()