try:
from gluon.contrib.memcache import MemcacheClient
memcache_servers = ['127.0.0.1:11211']
cache.memcache = MemcacheClient(request, memcache_servers)
cache.ram = cache.disk = cache.memcache
from gluon.contrib.memdb import MEMDB
session.connect(request,response,db=MEMDB(cache.memcache))
except:
sys.exc_clear()
session.connect(request, response, db=db)
pass
Traceback (most recent call last):
File "/Users/adnan/web2py24/gluon/main.py", line 557, in wsgibase
session._try_store_in_db(request, response)
File "/Users/adnan/web2py24/gluon/globals.py", line 739, in _try_store_in_db
record_id = table.insert(**dd)
File "/Users/adnan/web2py24/gluon/contrib/memdb.py", line 256, in insert
id = self._create_id()
File "/Users/adnan/web2py24/gluon/contrib/memdb.py", line 296, in _create_id
raise Exception('cannot set memcache')
Exception: cannot set memcache
Frames
File /Users/adnan/web2py24/gluon/main.py in wsgibase at line 557 code arguments variables
File /Users/adnan/web2py24/gluon/globals.py in _try_store_in_db at line 739 code arguments variables
File /Users/adnan/web2py24/gluon/contrib/memdb.py in insert at line 256 code arguments variables
File /Users/adnan/web2py24/gluon/contrib/memdb.py in _create_id at line 296 code arguments variables
Function argument list
(self=<DALStorage {'client_ip': <gluon.contrib.memdb.F...luon.contrib.memdb.Field object at 0x111d554d0>}>)
Code listing
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
id = self._tableobj.incr(shard_id)
if not id:
if self._tableobj.set(shard_id, '0'):
id = 0
else:
raise Exception('cannot set memcache')
return long(str(shard) + str(id))
def __str__(self):
return self._tablename
<span style="color: #066;" class="styled-by-prettify"...
Show original
db.py
-----
try:
from gluon.contrib.memcache import MemcacheClient
memcache_servers = ['127.0.0.1:11211']
cache.memcache = MemcacheClient(request, memcache_servers)
cache.ram = cache.disk = cache.memcache
from gluon.contrib.memdb import MEMDB
session.connect(request,response,db=MEMDB(cache.memcache))
except Exception:
session.connect(request, response, db=db) # doesn't work
pass
# had to do it this way, and then all works as expected
if not session:
session.connect(request, response, db=db)
db.define_table('mytable',Field('myfield','string'))
default.py
----------
def gr():
q = (db.mytable.id>0)
grid=SQLFORM.grid(q)
return dict()
if not session: session.connect(request, response, db=db)
it works fine for my purposes.--