From 273c410801efd398276abfb92a1e284e68cb6766 Mon Sep 17 00:00:00 2001 From: boyce Date: Thu, 14 Feb 2019 11:44:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=9B=86=E7=BE=A4bug=20?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E6=A8=A1=E5=9D=97=E7=A9=BA=E6=8C=87?= =?UTF-8?q?=E9=92=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cluster/config.go | 57 ++++++++++++++++--------------------------- sysmodule/DBModule.go | 5 ++++ 2 files changed, 26 insertions(+), 36 deletions(-) diff --git a/cluster/config.go b/cluster/config.go index 02e7424..eb54e4d 100644 --- a/cluster/config.go +++ b/cluster/config.go @@ -2,7 +2,6 @@ package cluster import ( "encoding/json" - "fmt" "io/ioutil" ) @@ -30,9 +29,9 @@ type ClusterConfig struct { mapIdNode map[int]CNode //map[nodename][ {CNode} ] - mapClusterNodeService map[string][]CNode - mapClusterServiceNode map[string][]CNode - mapLocalService map[string]bool + mapClusterNodeService map[string][]CNode //map[nodename] []CNode + mapClusterServiceNode map[string][]CNode //map[servicename] []CNode + mapLocalService map[string]bool //map[servicename] bool currentNode CNode } @@ -56,48 +55,34 @@ func ReadCfg(path string, nodeid int) (*ClusterConfig, error) { c.mapClusterServiceNode = make(map[string][]CNode, 1) //组装mapIdNode - var clusterNode []string for _, v := range c.NodeList { - - //1.取所有结点 mapservice := make(map[string]bool, 1) - c.mapIdNode[v.NodeID] = CNode{v.NodeID, v.NodeName, v.ServerAddr, mapservice} - - if nodeid == v.NodeID { - c.currentNode = c.mapIdNode[v.NodeID] - - //2.mapServiceNode map[string][]string - for _, s := range v.ServiceList { - mapservice[s] = true - c.mapLocalService[s] = true - } - - for _, c := range v.ClusterNode { - clusterNode = append(clusterNode, c) - } + for _, s := range v.ServiceList { + mapservice[s] = true } + + c.mapIdNode[v.NodeID] = CNode{v.NodeID, v.NodeName, v.ServerAddr, mapservice} } //组装mapClusterNodeService - for _, kc := range clusterNode { - for _, v := range c.NodeList { - if kc == v.NodeName { - //将自有连接的结点取详细信息 - mapservice := make(map[string]bool, 1) - curNode := CNode{v.NodeID, v.NodeName, v.ServerAddr, mapservice} - for _, s := range v.ServiceList { - mapservice[s] = true - c.mapClusterServiceNode[s] = append(c.mapClusterServiceNode[s], curNode) - } - c.mapClusterNodeService[v.NodeName] = append(c.mapClusterNodeService[v.NodeName], curNode) - } + for _, n := range c.mapIdNode { + c.mapClusterNodeService[n.NodeName] = append(c.mapClusterNodeService[n.NodeName], n) + //组装mapClusterServiceNode + for s := range n.ServiceList { + c.mapClusterServiceNode[s] = append(c.mapClusterServiceNode[s], n) + + if n.NodeID == nodeid { + c.mapLocalService[s] = true + } } + + if n.NodeID == nodeid { + c.currentNode = n + } + } - fmt.Println(c.mapIdNode) - fmt.Println(c.mapClusterNodeService) - fmt.Println(c.mapClusterServiceNode) return c, nil } diff --git a/sysmodule/DBModule.go b/sysmodule/DBModule.go index dc8e6a9..82b5280 100644 --- a/sysmodule/DBModule.go +++ b/sysmodule/DBModule.go @@ -283,6 +283,11 @@ func (slf *DBModule) SyncQuery(query string, args ...interface{}) SyncDBResult { // Exec ... func (slf *DBModule) Exec(query string, args ...interface{}) DBResult { ret := DBResult{} + if slf.db == nil { + ret.Err = fmt.Errorf("cannot connect database!") + return ret + } + res, err := slf.db.Exec(query, args...) ret.Err = err ret.LastInsertID, _ = res.LastInsertId()