Make use of caching

This commit is contained in:
Raphael Michel
2014-10-07 00:41:41 +02:00
parent 73e49e6423
commit e1decb0dea
4 changed files with 84 additions and 22 deletions

View File

@@ -12,11 +12,14 @@ class EventRelatedCache:
you store data in this cache, it is only stored for this event. The
main purpose of this is to be able to flush all cached data related
to this event at once.
The object is stateless, all state is in the cache, so you can
instantiate it as many times as you want.
"""
def __init__(self, event, cache='default'):
self.cache = caches[cache]
self.prefix = self._build_prefix()
self.event = event
self.prefixkey = 'event:%d' % self.event.pk
def _prefix_key(self, original_key):
@@ -42,7 +45,7 @@ class EventRelatedCache:
prefix = int(time.time())
self.cache.set(self.prefixkey, prefix)
def set(self, key, value, timeout=300):
def set(self, key, value, timeout=3600):
return self.cache.set(self._prefix_key(key), value, timeout)
def get(self, key):
@@ -51,7 +54,7 @@ class EventRelatedCache:
def get_many(self, keys):
return self.cache.get_many([self._prefix_key(key) for key in keys])
def set_many(self, values, timeout=300):
def set_many(self, values, timeout=3600):
newvalues = {}
for i in values.items():
newvalues[self._prefix_key(i[0])] = i[1]

View File

@@ -285,8 +285,9 @@ class Event(models.Model):
return self.name
def save(self, *args, **kwargs):
obj = super().save(*args, **kwargs)
self.get_cache().clear()
return super().save(self, *args, **kwargs)
return obj
def get_date_from_display(self):
return _date(
@@ -364,7 +365,7 @@ class ItemCategory(models.Model):
def save(self, *args, **kwargs):
if self.event:
self.event.get_cache().clear()
return super().save(self, *args, **kwargs)
return super().save(*args, **kwargs)
class Property(models.Model):
@@ -393,7 +394,7 @@ class Property(models.Model):
def save(self, *args, **kwargs):
if self.event:
self.event.get_cache().clear()
return super().save(self, *args, **kwargs)
return super().save(*args, **kwargs)
class PropertyValue(models.Model):
@@ -426,7 +427,7 @@ class PropertyValue(models.Model):
def save(self, *args, **kwargs):
if self.prop:
self.prop.event.get_cache().clear()
return super().save(self, *args, **kwargs)
return super().save(*args, **kwargs)
class Question(models.Model):
@@ -472,7 +473,7 @@ class Question(models.Model):
def save(self, *args, **kwargs):
if self.event:
self.event.get_cache().clear()
return super().save(self, *args, **kwargs)
return super().save(*args, **kwargs)
class Item(models.Model):
@@ -560,7 +561,7 @@ class Item(models.Model):
def save(self, *args, **kwargs):
if self.event:
self.event.get_cache().clear()
return super().save(self, *args, **kwargs)
return super().save(*args, **kwargs)
def delete(self):
self.deleted = True
@@ -647,7 +648,7 @@ class ItemVariation(models.Model):
def save(self, *args, **kwargs):
if self.item:
self.item.event.get_cache().clear()
return super().save(self, *args, **kwargs)
return super().save(*args, **kwargs)
class BaseRestriction(models.Model):
@@ -679,4 +680,4 @@ class BaseRestriction(models.Model):
def save(self, *args, **kwargs):
if self.event:
self.event.get_cache().clear()
return super().save(self, *args, **kwargs)
return super().save(*args, **kwargs)