From 879b68f41be5f727e5d9438e34d01c8753ba9367 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 19 Feb 2016 01:35:37 +0100 Subject: Add key channel --- main.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index f45e290..f9674db 100644 --- a/main.go +++ b/main.go @@ -7,26 +7,31 @@ import ( "time" ) -var conf = flag.String("conf", "config.yml", "configuration file") +var ( + conf = flag.String("conf", "config.yml", "configuration file") + intr = flag.Duration("interval", time.Second*5, "check interval") +) -func Checker(uri string, errc chan<- error) { - t := time.NewTicker(time.Second * 5) +func Checker(uri string, intr time.Duration, errc chan<- error) { + t := time.NewTicker(intr) var n int defer t.Stop() + key := Keys() for range t.C { - log.Println("check", uri) - err := Check(uri) + err := Check(uri, <-key) if err != nil { n++ errc <- err } if n > 5 { + log.Println("give up", uri) return } } } func main() { + flag.Parse() c, err := LoadConfig(*conf) if err != nil { log.Fatal(err) @@ -36,7 +41,7 @@ func main() { for _, uri := range c.Check { wg.Add(1) go func(uri string) { - Checker(uri, errc) + Checker(uri, *intr, errc) wg.Done() }(uri) } -- cgit v1.2.3