7 log "github.com/sirupsen/logrus"
9 "github.com/vapor/toolbar/precog/database/orm"
12 func (m *monitor) connectNodesRoutine() {
14 ticker := time.NewTicker(time.Duration(m.cfg.CheckFreqSeconds*2) * time.Second)
15 for ; true; <-ticker.C {
16 if err := m.dialNodes(); err != nil {
22 func (m *monitor) dialNodes() error {
23 log.Info("Start to reconnect to nodes...")
26 if err := dbTx.Model(&orm.Node{}).Find(&nodes).Error; err != nil {
31 addresses := make([]*p2p.NetAddress, 0)
32 for i := 0; i < len(nodes); i++ {
33 ips, err := net.LookupIP(nodes[i].Host)
39 log.Errorf("fail to look up ip for %s", nodes[i].Host)
43 address := p2p.NewNetAddressIPPort(ips[0], nodes[i].Port)
44 addresses = append(addresses, address)
47 // connected peers will be skipped in switch.DialPeers()
48 m.sw.DialPeers(addresses)
49 log.Info("DialPeers done.")