Hello,
I am using memcache to hold query directly:
db((db.ad...,cache=(cache.mem,100))
Web2py creates a key with the query. However memcache does not seem to
support spaces.
I modified web2py_src_1.61.4\web2py\gluon\contrib\memcache\__init__.py
to format the key
I don't know if this is the best way to do...
Best regards,
Nicolas
from gluon.contrib.memcache.memcache import Client
import time
"""
examle of usage:
cache.memcache=MemcacheClient(request,[127.0.0.1:11211],debug=true)
"""
import cPickle as pickle
class MemcacheClient(Client):
def __init__(self, request, servers, debug=0, pickleProtocol=0,
pickler=pickle.Pickler, unpickler=pickle.Unpickler,
pload=None, pid=None):
self.request=request
Client.__init__(self,servers,debug,pickleProtocol,
pickler,unpickler,pload,pid)
def __call__(self,key,f,time_expire=300):
key=self.__keyFormat__(key)
dt=time_expire
value=None
obj=self.get(key)
if obj and obj[0]>time.time()-dt:
value=obj[1]
elif f is None:
if obj: self.delete(key)
else:
value=f()
self.set(key,(time.time(),value))
return value
def increment(self,key,value=1):
key=self.__keyFormat__(key)
obj=self.get(key)
if obj: value=obj[1]+value
self.set(key,(time.time(),value))
return value
def __keyFormat__(self,key):
return '%s/%s' % (self.request.application,key.replace('
','_'))
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---