From a30f8912fc6fb7828adbcb2392b4016601b4cc14 Mon Sep 17 00:00:00 2001 From: Tamas Molnar Date: Tue, 13 Feb 2018 09:28:15 +0200 Subject: [PATCH] Read the categories once per updateCachedHealth call --- cachingController.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/cachingController.go b/cachingController.go index 431d71b..22605b1 100644 --- a/cachingController.go +++ b/cachingController.go @@ -44,6 +44,11 @@ func (c *healthCheckController) collectChecksFromCachesFor(categories map[string func (c *healthCheckController) updateCachedHealth(services map[string]service, categories map[string]category) { // adding new services, not touching existing + refreshPeriod := findShortestPeriod(categories) + categories, err := c.healthCheckService.getCategories() + if err != nil { + warnLogger.Printf("Cannot read categories: [%v]\n Using minimum refresh period for services", err) + } for _, service := range services { if mService, ok := c.measuredServices[service.name]; !ok || !reflect.DeepEqual(service, c.measuredServices[service.name].service) { if ok { @@ -51,11 +56,7 @@ func (c *healthCheckController) updateCachedHealth(services map[string]service, } newMService := newMeasuredService(service) c.measuredServices[service.name] = newMService - refreshPeriod := findShortestPeriod(categories) - categories, err := c.healthCheckService.getCategories() - if err != nil { - warnLogger.Printf("Cannot read categories: [%v]\n Using minimum refresh period for service [%s]", err, service.name) - } else { + if categories != nil { for _, category := range categories { if isStringInSlice(service.name, category.services) { refreshPeriod = category.refreshPeriod