summaryrefslogtreecommitdiff
path: root/ishtar_common/utils.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-09-23 12:27:43 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-09-23 12:27:43 +0200
commitf5179bad71a5b5e65f70172b177abdcb3896fca2 (patch)
tree8736f0005a4a2c89d8b8a818a73adc310bb1ea55 /ishtar_common/utils.py
parent32fbe5ef5c8d0c86e15b7d5fe2881b032cc8af17 (diff)
downloadIshtar-f5179bad71a5b5e65f70172b177abdcb3896fca2.tar.bz2
Ishtar-f5179bad71a5b5e65f70172b177abdcb3896fca2.zip
Cache: manage long keys - immediatly refresh cache after types modifications
Diffstat (limited to 'ishtar_common/utils.py')
-rw-r--r--ishtar_common/utils.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py
index ca9193204..60c3ac7ef 100644
--- a/ishtar_common/utils.py
+++ b/ishtar_common/utils.py
@@ -17,6 +17,7 @@
# See the file COPYING for details.
+import hashlib
import random
from django.conf import settings
@@ -41,6 +42,13 @@ def get_cache(cls, extra_args=[]):
else:
cache_key += '-' + unicode(arg)
cache_key = slugify(cache_key)
+ if not cache_key.endswith('_current_keys') \
+ and hasattr(cls, '_add_cache_key_to_refresh'):
+ cls._add_cache_key_to_refresh(extra_args)
+ if len(cache_key) >= 250:
+ m = hashlib.md5()
+ m.update(cache_key)
+ cache_key = m.hexdigest()
return cache_key, cache.get(cache_key)