summaryrefslogtreecommitdiffstats
path: root/core/middleware.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/middleware.py')
-rw-r--r--core/middleware.py12
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