diff options
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 |
commit | f5179bad71a5b5e65f70172b177abdcb3896fca2 (patch) | |
tree | 8736f0005a4a2c89d8b8a818a73adc310bb1ea55 /ishtar_common/utils.py | |
parent | 32fbe5ef5c8d0c86e15b7d5fe2881b032cc8af17 (diff) | |
download | Ishtar-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.py | 8 |
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) |