From 5f14014f6714e4c349f632627c6da4b0bff50506 Mon Sep 17 00:00:00 2001 From: yaziming Date: Wed, 3 Jun 2020 18:11:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AD=90=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E6=98=BE=E7=A4=BA=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/services/node.go | 54 +++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 31 deletions(-) diff --git a/backend/services/node.go b/backend/services/node.go index 95c326f3..2228b97f 100644 --- a/backend/services/node.go +++ b/backend/services/node.go @@ -14,16 +14,18 @@ import ( "github.com/apex/log" "github.com/globalsign/mgo/bson" "github.com/gomodule/redigo/redis" - "github.com/spf13/viper" "runtime/debug" "time" ) type Data struct { - Key string `json:"key"` - Mac string `json:"mac"` - Ip string `json:"ip"` - Hostname string `json:"hostname"` + Key string `json:"key"` + Mac string `json:"mac"` + Ip string `json:"ip"` + Hostname string `json:"hostname"` + Name string `json:"name"` + NameType string `json:"name_type"` + Master bool `json:"master"` UpdateTs time.Time `json:"update_ts"` UpdateTsUnix int64 `json:"update_ts_unix"` @@ -122,19 +124,6 @@ func UpdateNodeStatus() { } } -func getNodeName(data *Data) string { - registerType := viper.GetString("server.register.type") - if registerType == constants.RegisterTypeMac { - return data.Ip - } else if registerType == constants.RegisterTypeIp { - return data.Ip - } else if registerType == constants.RegisterTypeHostname { - return data.Hostname - } else { - return data.Ip - } -} - // 处理节点信息 func UpdateNodeInfo(data *Data) (err error) { // 更新节点信息到数据库 @@ -144,17 +133,18 @@ func UpdateNodeInfo(data *Data) (err error) { _, err = c.Upsert(bson.M{"key": data.Key}, bson.M{ "$set": bson.M{ "status": constants.StatusOnline, + "key": data.Key, + "name": data.Name, + "name_type": data.NameType, + "ip": data.Ip, + "port": "8000", + "mac": data.Mac, + "is_master": data.Master, "update_ts": time.Now(), "update_ts_unix": time.Now().Unix(), }, "$setOnInsert": bson.M{ - "_id": bson.NewObjectId(), - "key": data.Key, - "name": getNodeName(data), - "ip": data.Ip, - "port": "8000", - "mac": data.Mac, - "is_master": data.Master, + "_id": bson.NewObjectId(), }, }) return err @@ -170,6 +160,8 @@ func UpdateNodeData() { Mac: localNode.Mac, Ip: localNode.Ip, Hostname: localNode.Hostname, + Name: localNode.Identify, + NameType: string(localNode.IdentifyType), Master: model.IsMaster(), UpdateTs: time.Now(), UpdateTsUnix: time.Now().Unix(), @@ -243,7 +235,12 @@ func InitNodeService() error { // 首次更新节点数据(注册到Redis) UpdateNodeData() - + if model.IsMaster() { + err = model.UpdateMasterNodeInfo(node.Identify, node.Ip, node.Mac, node.Hostname) + if err != nil { + return err + } + } err = node.Ready() if err != nil { @@ -251,11 +248,6 @@ func InitNodeService() error { } if model.IsMaster() { - err = model.UpdateMasterNodeInfo(node.Identify, node.Ip, node.Mac, node.Hostname) - - if err != nil { - return err - } // 如果为主节点,订阅主节点通信频道 if err := database.Sub(constants.ChannelMasterNode, MasterNodeCallback); err != nil { return err