OSDN Git Service

fix log
[bytom/vapor.git] / toolbar / precog / monitor / connection.go
index eef0cd6..20093fb 100644 (file)
@@ -10,17 +10,20 @@ import (
 )
 
 func (m *monitor) connectNodesRoutine() {
-       // TODO: change name?
-       ticker := time.NewTicker(time.Duration(m.cfg.CheckFreqSeconds*2) * time.Second)
+       // TODO: fix
+       // ticker := time.NewTicker(time.Duration(m.cfg.CheckFreqMinutes) * time.Minute)
+       ticker := time.NewTicker(time.Duration(m.cfg.CheckFreqMinutes) * time.Second)
        for ; true; <-ticker.C {
+               <-m.dialCh
+               m.Lock()
+
                if err := m.dialNodes(); err != nil {
-                       log.Error(err)
+                       log.WithFields(log.Fields{"err": err}).Error("dialNodes")
                }
        }
 }
 
 func (m *monitor) dialNodes() error {
-       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 {
@@ -29,23 +32,14 @@ func (m *monitor) dialNodes() error {
 
        addresses := make([]*p2p.NetAddress, 0)
        for i := 0; i < len(nodes); i++ {
-               ips, err := net.LookupIP(nodes[i].Host)
-               if err != nil {
-                       log.Error(err)
-                       continue
-               }
-               if len(ips) == 0 {
-                       log.Errorf("fail to look up ip for %s", nodes[i].Host)
-                       continue
-               }
-
-               address := p2p.NewNetAddressIPPort(ips[0], nodes[i].Port)
+               address := p2p.NewNetAddressIPPort(net.ParseIP(nodes[i].IP), nodes[i].Port)
                addresses = append(addresses, address)
        }
 
        // connected peers will be skipped in switch.DialPeers()
        m.sw.DialPeers(addresses)
        log.Info("DialPeers done.")
-       m.Unlock()
+       m.processDialResults()
+       m.checkStatusCh <- struct{}{}
        return nil
 }