From 85edef0802969dbfc460f4ca76e38859f9e19e56 Mon Sep 17 00:00:00 2001 From: mdipierro Date: Thu, 11 Oct 2012 08:27:58 -0500 Subject: [PATCH] faster init on gae and better gae_memcache --- VERSION | 2 +- gluon/contrib/gae_memcache.py | 29 ++++++++++++++++++----------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/VERSION b/VERSION index 1a43b807..25defe6a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.1.0 (2012-10-10 15:15:45) dev +Version 2.1.0 (2012-10-11 08:27:52) dev diff --git a/gluon/contrib/gae_memcache.py b/gluon/contrib/gae_memcache.py index e7ab8234..0a482e43 100644 --- a/gluon/contrib/gae_memcache.py +++ b/gluon/contrib/gae_memcache.py @@ -12,49 +12,56 @@ cache.ram=cache.disk=MemcacheClient(request) import time from google.appengine.api.memcache import Client +class MemcacheClient(object): -class MemcacheClient(Client): + client = Client() def __init__(self, request): self.request = request - Client.__init__(self) def __call__( self, key, f, time_expire=300, - ): + ): key = '%s/%s' % (self.request.application, key) dt = time_expire value = None - obj = self.get(key) + obj = self.client.get(key) if obj and (dt == None or obj[0] > time.time() - dt): value = obj[1] elif f is None: if obj: - self.delete(key) + self.client.delete(key) else: value = f() - self.set(key, (time.time(), value)) + self.client.set(key, (time.time(), value)) return value def increment(self, key, value=1): key = '%s/%s' % (self.request.application, key) - obj = self.get(key) + obj = self.client.get(key) if obj: value = obj[1] + value - self.set(key, (time.time(), value)) + self.client.set(key, (time.time(), value)) return value def clear(self, key = None): if key: key = '%s/%s' % (self.request.application, key) - self.delete(key) + self.client.delete(key) else: - self.flush_all() - + self.client.flush_all() + def delete(self,*a,**b): + return self.client.delete(*a,**b) + def get(self,*a,**b): + return self.client.delete(*a,**b) + def set(self,*a,**b): + return self.client.delete(*a,**b) + def flush_all(self,*a,**b): + return self.client.delete(*a,**b)