summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go17
1 files changed, 11 insertions, 6 deletions
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)
}