func startWorker(in <-chan task, storage *db.ProxyStorage) { for { t := <-in logger.Tracef("Running checks [%v] for %v", t.checks, t.target) r, err := client.CheckProxy(t.target, t.checks) if err != nil { logger.Errf("Error while checking proxy %v. Error: %v", t.target, err) continue } logger.Tracef("Got check results for %v. Results: %v", t.target, r) t.target.LastUpdateTS = time.Now().Unix() t.target.Http = r.CheckResults["http"] t.target.Https = r.CheckResults["https"] t.target.Ping = r.Ping storage.SaveProxy(t.target, true) } }