summaryrefslogtreecommitdiffstats
path: root/core/middleware.py
diff options
context:
space:
mode:
authorMichael Manfre2022-12-05 12:55:30 -0500
committerGitHub2022-12-05 10:55:30 -0700
commitd6eb16a398a8d3a2f58399fd40df7f212680cab0 (patch)
tree5561d7c7d33850672e300ba4320ece1e588dbb1b /core/middleware.py
parenta9bb4a7122df6d9d4a764de52244c6ec75789ead (diff)
downloadtakahe-d6eb16a398a8d3a2f58399fd40df7f212680cab0.tar.gz
takahe-d6eb16a398a8d3a2f58399fd40df7f212680cab0.tar.bz2
takahe-d6eb16a398a8d3a2f58399fd40df7f212680cab0.zip
Added caching and initial settings
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