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.CheckFreqMinutes) * time.Minute)
15 ticker := time.NewTicker(time.Duration(m.cfg.CheckFreqMinutes) * time.Second)
16 for ; true; <-ticker.C {
20 if err := m.dialNodes(); err != nil {
21 log.WithFields(log.Fields{"err": err}).Error("dialNodes")
26 func (m *monitor) dialNodes() error {
27 log.Info("Start to reconnect to nodes...")
29 if err := m.db.Model(&orm.Node{}).Find(&nodes).Error; err != nil {
33 addresses := make([]*p2p.NetAddress, 0)
34 for i := 0; i < len(nodes); i++ {
35 address := p2p.NewNetAddressIPPort(net.ParseIP(nodes[i].IP), nodes[i].Port)
36 addresses = append(addresses, address)
39 // connected peers will be skipped in switch.DialPeers()
40 m.sw.DialPeers(addresses)
41 log.Info("DialPeers done.")
42 m.processDialResults()
43 m.checkStatusCh <- struct{}{}