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}