From 84dcc50dae43f615c743ba3924c7889bc4612efd Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Mon, 12 Oct 2020 21:20:14 +0200
Subject: [PATCH] BaseUtils: improve cached services

---
 TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/CachedService.py    | 2 +-
 .../TheCodeLabs_BaseUtils/MultiCacheKeyService.py               | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/CachedService.py b/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/CachedService.py
index 614b133..a250340 100644
--- a/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/CachedService.py
+++ b/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/CachedService.py
@@ -13,12 +13,12 @@ class CachedService(ABC):
     def get_data(self) -> Dict:
         if self.__is_data_obsolete():
             self._data = self._fetch_data()
+            self._lastFetchTimestamp = now = datetime.now().timestamp()
         return self._data
 
     def __is_data_obsolete(self) -> bool:
         now = datetime.now().timestamp()
         if (now - self._lastFetchTimestamp) > self._fetchThresholdInSeconds:
-            self._lastFetchTimestamp = now
             return True
 
         return False
diff --git a/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/MultiCacheKeyService.py b/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/MultiCacheKeyService.py
index 5260c83..d5dd760 100644
--- a/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/MultiCacheKeyService.py
+++ b/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/MultiCacheKeyService.py
@@ -30,12 +30,12 @@ class MultiCacheKeyService(ABC):
             cacheEntry = self._cache[cacheKey]
             if self.__is_data_obsolete(cacheEntry):
                 cacheEntry.cachedData = self._fetch_data(cacheEntry.settings)
+                cacheEntry.lastFetchTimestamp = datetime.now().timestamp()
             return cacheEntry.cachedData
 
     def __is_data_obsolete(self, cacheEntry: CacheEntry) -> bool:
         now = datetime.now().timestamp()
         if (now - cacheEntry.lastFetchTimestamp) > cacheEntry.fetchIntervalInSeconds:
-            cacheEntry.lastFetchTimestamp = now
             return True
 
         return False
-- 
GitLab