OSDN Git Service

Merge remote-tracking branch 'origin/master' into precogs/init
[bytom/vapor.git] / toolbar / precog / monitor / monitor.go
1 package monitor
2
3 import (
4         "time"
5
6         "github.com/jinzhu/gorm"
7         log "github.com/sirupsen/logrus"
8
9         "github.com/vapor/toolbar/precog/config"
10 )
11
12 type monitor struct {
13         cfg *config.Config
14         db  *gorm.DB
15 }
16
17 func NewMonitor(cfg *config.Config, db *gorm.DB) *monitor {
18         return &monitor{
19                 cfg: cfg,
20                 db:  db,
21         }
22 }
23
24 func (m *monitor) Run() {
25         if err := m.updateBootstrapNodes(); err != nil {
26                 log.Fatal(err)
27         }
28
29         ticker := time.NewTicker(time.Duration(m.cfg.CheckFreqSeconds) * time.Second)
30         for ; true; <-ticker.C {
31                 // TODO: lock?
32                 m.monitorRountine()
33         }
34 }
35
36 func (m *monitor) updateBootstrapNodes() error {
37         // TODO: updated existed nodes
38         // TODO: add new nodes
39         return nil
40 }
41
42 func (m *monitor) monitorRountine() error {
43         // TODO: dail, get lantency
44         // TODO: get blockhash by height, get latency
45         // TODO: update lantency, active_time and status
46         return nil
47 }