OSDN Git Service

dododo
authorHAOYUatHZ <haoyu@protonmail.com>
Mon, 19 Aug 2019 07:54:52 +0000 (15:54 +0800)
committerHAOYUatHZ <haoyu@protonmail.com>
Mon, 19 Aug 2019 07:54:52 +0000 (15:54 +0800)
toolbar/precog/monitor/connection.go
toolbar/precog/monitor/discover.go
toolbar/precog/monitor/monitor.go
toolbar/precog/monitor/stats.go

index 9f716ad..eef0cd6 100644 (file)
@@ -20,7 +20,7 @@ func (m *monitor) connectNodesRoutine() {
 }
 
 func (m *monitor) dialNodes() error {
-       // m.Lock()
+       m.Lock()
        log.Info("Start to reconnect to nodes...")
        var nodes []*orm.Node
        if err := m.db.Model(&orm.Node{}).Find(&nodes).Error; err != nil {
@@ -46,6 +46,6 @@ func (m *monitor) dialNodes() error {
        // connected peers will be skipped in switch.DialPeers()
        m.sw.DialPeers(addresses)
        log.Info("DialPeers done.")
-       // m.Unlock()
+       m.Unlock()
        return nil
 }
index 0e9ef47..199eec0 100644 (file)
@@ -33,16 +33,18 @@ func (m *monitor) collectDiscoveredNodes() {
                        continue
                }
                log.Info("discover new node: ", node)
-               // m.Lock()
+               m.Lock()
+
                if err := m.upSertNode(&config.Node{
                        PublicKey: node.ID.String(),
                        Host:      node.IP.String(),
                        Port:      node.TCP,
-               }); err != nil {
+               }); err == nil {
+                       nodeMap[node.ID.String()] = node
+               } else {
                        log.Error(err)
                }
 
-               nodeMap[node.ID.String()] = node
-               // m.Unlock()
+               m.Unlock()
        }
 }
index 4a302f7..f44bae9 100644 (file)
@@ -6,7 +6,7 @@ import (
        "os"
        "os/user"
        "strings"
-       // "sync"
+       "sync"
        "time"
 
        "github.com/jinzhu/gorm"
@@ -29,7 +29,7 @@ import (
 )
 
 type monitor struct {
-       // *sync.RWMutex
+       *sync.RWMutex
        cfg       *config.Config
        db        *gorm.DB
        nodeCfg   *vaporCfg.Config
@@ -70,7 +70,7 @@ func NewMonitor(cfg *config.Config, db *gorm.DB) *monitor {
        }
 
        return &monitor{
-               // RWMutex: &sync.RWMutex{},
+               RWMutex: &sync.RWMutex{},
                cfg:     cfg,
                db:      db,
                nodeCfg: nodeCfg,
@@ -177,7 +177,7 @@ func (m *monitor) checkStatusRoutine() {
        bestHeight := uint64(0)
        ticker := time.NewTicker(time.Duration(m.cfg.CheckFreqSeconds) * time.Second)
        for range ticker.C {
-               // m.Lock()
+               m.Lock()
                log.Info("connected peers: ", m.sw.GetPeers().List())
 
                for _, peer := range m.sw.GetPeers().List() {
@@ -220,6 +220,6 @@ func (m *monitor) checkStatusRoutine() {
                        peers.RemovePeer(p.ID())
                }
                log.Info("Disonnect all peers.")
-               // m.Unlock()
+               m.Unlock()
        }
 }
index 88c819e..0ea4103 100644 (file)
@@ -74,13 +74,9 @@ func (m *monitor) savePeerInfo(peerInfo *peers.PeerInfo) error {
                // PingTimes     uint64
                // PongTimes     uint64
        }
-       if err := m.db.Model(&orm.NodeLiveness{}).Where("node_id = ? AND status != ?", ormNode.ID, common.NodeOfflineStatus).
+       return m.db.Model(&orm.NodeLiveness{}).Where("node_id = ? AND status != ?", ormNode.ID, common.NodeOfflineStatus).
                UpdateColumn(&orm.NodeLiveness{
                        BestHeight:    ormNodeLiveness.BestHeight,
                        AvgLantencyMS: ormNodeLiveness.AvgLantencyMS,
-               }).FirstOrCreate(ormNodeLiveness).Error; err != nil {
-               return err
-       }
-
-       return nil
+               }).FirstOrCreate(ormNodeLiveness).Error
 }