diff options
Diffstat (limited to 'core/middleware.py')
-rw-r--r-- | core/middleware.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/core/middleware.py b/core/middleware.py index 08c28fa..bd89d1c 100644 --- a/core/middleware.py +++ b/core/middleware.py @@ -1,3 +1,5 @@ +from time import time + from django.core.exceptions import MiddlewareNotUsed from core import sentry @@ -9,11 +11,19 @@ class ConfigLoadingMiddleware: Caches the system config every request """ + refresh_interval: float = 30.0 + def __init__(self, get_response): self.get_response = get_response + self.config_ts: float = 0.0 def __call__(self, request): - Config.system = Config.load_system() + if ( + not getattr(Config, "system", None) + or (time() - self.config_ts) >= self.refresh_interval + ): + Config.system = Config.load_system() + self.config_ts = time() response = self.get_response(request) return response |