go uptime monitor
at main 697 B view raw
1package scheduler 2 3import ( 4 "database/sql" 5 _ "github.com/mattn/go-sqlite3" 6 "log" 7 "time" 8 9 "tangled.sh/seiso.moe/hestia/check" 10 "tangled.sh/seiso.moe/hestia/config" 11 "tangled.sh/seiso.moe/hestia/storage" 12) 13 14func StartScheduler(cfg *config.Config, db *sql.DB) { 15 for _, ck := range cfg.Checks { 16 go func(c check.Check) { 17 ticker := time.NewTicker(time.Duration(c.Interval) * time.Second) 18 for range ticker.C { 19 log.Printf("running check: %s\n", c.Name) 20 var status, message string 21 var dur time.Duration 22 23 status, message, dur = check.CheckHTTP(c) 24 log.Printf("%s, %s, %s\n", status, message, dur) 25 26 storage.StoreResult(db, c.Name, status, message, dur) 27 } 28 }(ck) 29 } 30}