Make some router settings configurable; silence noisy logs
This commit is contained in:
+23
-5
@@ -18,6 +18,8 @@ package router
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
@@ -69,11 +71,30 @@ func (ts *HTTPTriggerSet) watchTriggers() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
failureCount := 0
|
// the number of connection failures we'll accept before quitting
|
||||||
|
var err error
|
||||||
maxFailures := 5
|
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.
|
// 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.
|
// TODO change this to use a watch API; or maybe even watch etcd directly.
|
||||||
|
failureCount := 0
|
||||||
for {
|
for {
|
||||||
triggers, err := ts.controller.HTTPTriggerList()
|
triggers, err := ts.controller.HTTPTriggerList()
|
||||||
if err != nil {
|
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.Fatalf("Failed to connect to controller after %v retries: %v", failureCount, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.Printf("Updating router, %v triggers", len(triggers))
|
|
||||||
|
|
||||||
ts.triggers = triggers
|
ts.triggers = triggers
|
||||||
ts.mutableRouter.updateRouter(ts.getRouterFromTriggers())
|
ts.mutableRouter.updateRouter(ts.getRouterFromTriggers())
|
||||||
|
time.Sleep(time.Duration(pollSleepSec) * time.Second)
|
||||||
time.Sleep(3 * time.Second)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,5 @@ func (mr *mutableRouter) ServeHTTP(responseWriter http.ResponseWriter, request *
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (mr *mutableRouter) updateRouter(newHandler *mux.Router) {
|
func (mr *mutableRouter) updateRouter(newHandler *mux.Router) {
|
||||||
log.Println("Updating router")
|
|
||||||
mr.router.Store(newHandler)
|
mr.router.Store(newHandler)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user