Make some router settings configurable; silence noisy logs

This commit is contained in:
Soam Vasani
2016-11-02 00:28:07 -07:00
parent e19669b019
commit 3ca1191117
2 changed files with 23 additions and 6 deletions
+23 -5
View File
@@ -18,6 +18,8 @@ package router
import (
"log"
"os"
"strconv"
"time"
"github.com/gorilla/mux"
@@ -69,11 +71,30 @@ func (ts *HTTPTriggerSet) watchTriggers() {
return
}
failureCount := 0
// the number of connection failures we'll accept before quitting
var err error
maxFailures := 5
maxFailuresEnv := os.Getenv("FISSION_ROUTER_MAX_FAILURES")
if len(maxFailuresEnv) != 0 {
maxFailures, err = strconv.Atoi(maxFailuresEnv)
if err != nil {
log.Fatalf("FISSION_ROUTER_MAX_FAILURES must be an integer, found %v", maxFailuresEnv)
}
}
// amount of time to sleep between polling calls
pollSleepSec := 3
pollSleepEnv := os.Getenv("FISSION_ROUTER_POLL_SLEEP_SECONDS")
if len(pollSleepEnv) != 0 {
pollSleepSec, err = strconv.Atoi(pollSleepEnv)
if err != nil {
log.Fatalf("FISSION_ROUTER_POLL_SLEEP_SECONDS must be an integer, found %v", pollSleepEnv)
}
}
// Watch controller for updates to triggers and update the router accordingly.
// TODO change this to use a watch API; or maybe even watch etcd directly.
failureCount := 0
for {
triggers, err := ts.controller.HTTPTriggerList()
if err != nil {
@@ -82,11 +103,8 @@ func (ts *HTTPTriggerSet) watchTriggers() {
log.Fatalf("Failed to connect to controller after %v retries: %v", failureCount, err)
}
}
log.Printf("Updating router, %v triggers", len(triggers))
ts.triggers = triggers
ts.mutableRouter.updateRouter(ts.getRouterFromTriggers())
time.Sleep(3 * time.Second)
time.Sleep(time.Duration(pollSleepSec) * time.Second)
}
}
-1
View File
@@ -49,6 +49,5 @@ func (mr *mutableRouter) ServeHTTP(responseWriter http.ResponseWriter, request *
}
func (mr *mutableRouter) updateRouter(newHandler *mux.Router) {
log.Println("Updating router")
mr.router.Store(newHandler)
}