package main import ( "encoding/json" "fmt" "strconv" // "time" "log" ) func run() { c := c c.AddFunc("@every 10s", healthCheck) c.Start() jobs := c.Entries() for _, i := range jobs { fmt.Printf("Job: %v, Schedule: %v; Next %v; Prev %v \n", i.Job, i.Schedule, i.Next, i.Prev) } } const ( cache_prefix = "status_" ) func healthCheck() { h := []Host{} db := Db db.Find(&h) c := pool.Get() defer c.Close() for k, v := range h { if resp, _, err := HttpGet(v.Url); err != nil { fmt.Printf("Error! %v \n", err) } else { // fmt.Println("Health check: Okay! ", resp.Status) h[k].Status = resp.Status h[k].StatusCode = int64(resp.StatusCode) h[k].Success = true Db.Debug().Save(&h[k]) } // save struct in redis as serialized json // TODO j, err := json.Marshal(h[k]) if err != nil { log.Println("Error: ", err) continue } c.Do("SET", cache_prefix+strconv.Itoa(k), j) //c.Do("SET", cache_prefix+strconv.Itoa(k), j) //c.Do("SET", k, j) // fmt.Printf("Id: %v, Url: %v \n", v.Id, v.Url) } }