diff --git a/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/MultiCacheKeyService.py b/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/MultiCacheKeyService.py index 0228b8d22bbeb6e9534ffcd3fa729cb0b2f1762a..50b1c64927b88c089c523daece3eaa738b58a3c2 100644 --- a/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/MultiCacheKeyService.py +++ b/TheCodeLabs_BaseUtils/TheCodeLabs_BaseUtils/MultiCacheKeyService.py @@ -8,19 +8,20 @@ from typing import Dict @dataclass class CacheEntry: key: str - lastFetchTimestamp: float + fetchIntervalInSeconds: int settings: Dict + lastFetchTimestamp: float cachedData: Dict class MultiCacheKeyService(ABC): - def __init__(self, fetchThresholdInSeconds: int): - self._fetchThresholdInSeconds = fetchThresholdInSeconds + def __init__(self): self._cache = {} - def get_data(self, cacheKey: str, settings: Dict) -> Dict: + def get_data(self, cacheKey: str, fetchIntervalInSeconds: int, settings: Dict) -> Dict: if cacheKey not in self._cache: - self._cache[cacheKey] = CacheEntry(cacheKey, datetime.now().timestamp(), settings, {}) + self._cache[cacheKey] = CacheEntry(cacheKey, fetchIntervalInSeconds, settings, + datetime.now().timestamp(), {}) cacheEntry = self._cache[cacheKey] if self.__is_data_obsolete(cacheEntry): @@ -29,7 +30,7 @@ class MultiCacheKeyService(ABC): def __is_data_obsolete(self, cacheEntry: CacheEntry) -> bool: now = datetime.now().timestamp() - if (now - cacheEntry.lastFetchTimestamp) > self._fetchThresholdInSeconds: + if (now - cacheEntry.lastFetchTimestamp) > cacheEntry.fetchIntervalInSeconds: cacheEntry.lastFetchTimestamp = now return True diff --git a/TheCodeLabs_BaseUtils/setup.py b/TheCodeLabs_BaseUtils/setup.py index 9ebaa6cfce5fc234bab06c3181d35075a451afa1..2dec9dd76c0fb90f3aaae46cb3f5be079d4c63cd 100644 --- a/TheCodeLabs_BaseUtils/setup.py +++ b/TheCodeLabs_BaseUtils/setup.py @@ -3,7 +3,7 @@ from setuptools import setup setup( name='TheCodeLabs-BaseUtils', packages=['TheCodeLabs_BaseUtils'], - version='1.6.0', + version='1.6.1', license='MIT', description='Useful python classes', author='TheCodeLabs',