From 4863a823d8f510e5c82d7f8c34f5753f18861a03 Mon Sep 17 00:00:00 2001 From: Aeneas Date: Tue, 7 Nov 2017 22:00:24 +0100 Subject: [PATCH] Make refresh_delay configurable and skip it on boot (#18) --- cmd/all.go | 1 + cmd/helper_server.go | 4 ++-- cmd/proxy.go | 1 + cmd/root.go | 1 + 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cmd/all.go b/cmd/all.go index c209a0dc42..c99fb4be4a 100644 --- a/cmd/all.go +++ b/cmd/all.go @@ -29,6 +29,7 @@ var allCmd = &cobra.Command{ bearerTokenSecret: viper.GetString("JWT_SHARED_SECRET"), cors: parseCorsOptions(""), address: fmt.Sprintf("%s:%s", viper.GetString("PROXY_HOST"), viper.GetString("PROXY_PORT")), + refreshDelay: viper.GetString("REFRESH_DELAY"), } mc := &managementConfig{ diff --git a/cmd/helper_server.go b/cmd/helper_server.go index 306e8beb39..592ce337e7 100644 --- a/cmd/helper_server.go +++ b/cmd/helper_server.go @@ -16,8 +16,6 @@ func refresh(c *proxyConfig, m *rule.CachedMatcher, fails int) { duration = time.Second * 30 } - time.Sleep(duration) - if err := m.Refresh(); err != nil { logger.WithError(err).WithField("retry", fails).Errorln("Unable to refresh rules.") if fails > 15 { @@ -28,6 +26,8 @@ func refresh(c *proxyConfig, m *rule.CachedMatcher, fails int) { return } + time.Sleep(duration) + refresh(c, m, 0) } diff --git a/cmd/proxy.go b/cmd/proxy.go index ec8cccd347..514b0b4d44 100644 --- a/cmd/proxy.go +++ b/cmd/proxy.go @@ -50,6 +50,7 @@ var proxyCmd = &cobra.Command{ bearerTokenSecret: viper.GetString("JWT_SHARED_SECRET"), cors: parseCorsOptions(""), address: fmt.Sprintf("%s:%s", viper.GetString("PROXY_HOST"), viper.GetString("PROXY_PORT")), + refreshDelay: viper.GetString("REFRESH_DELAY"), } runProxy(config) diff --git a/cmd/root.go b/cmd/root.go index 7cf841cacf..750cb09f30 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -71,6 +71,7 @@ func initConfig() { viper.SetDefault("LOG_LEVEL", "info") viper.SetDefault("PROXY_PORT", "4455") viper.SetDefault("MANAGEMENT_PORT", "4456") + viper.SetDefault("REFRESH_DELAY", "5s") // If a config file is found, read it in. if err := viper.ReadInConfig(); err == nil {