Subject: [web2py] Re: learning cache



here is the code i used to learn cachemodels/db0.py# -*- coding: utf-8 -*-db.define_table('test_0',  Field('name'),  format = lambda r: '%s' % (r.name) )
db.define_table('test_1',  Field('test_0', 'reference test_0'),  Field('name'),  format = lambda r: '%s' % (r.name) )
controllers/test.py# -*- coding: utf-8 -*-
auth.requires_login()(lambda: None)()
cache.action(time_expire = 300, cache_model = cache.ram, quick = 'SVLUP')(lambda: None)()#cache(request.env.path_info, time_expire = 300, cache_model = cache.ram)(lambda: None)()
def master_test_1():    grid = SQLFORM.grid(db.test_1)    return locals()
def transaction_test_1():    redirect_url = 'report_form_test_1'    form = SQLFORM.factory(    Field("name",           requires = IS_NOT_EMPTY() ),     Field("test_0", "reference test_0",           requires = IS_IN_DB(db, 'test_0.id', db.test_0._format, cache = (cache.ram, 3600) ) ) )    if form.process().accepted:        name = form.vars.name        test_0 = form.vars.test_0
        db.test_1.insert(name = name, test_0 = test_0)
        redirect(URL(redirect_url) )    elif form.errors:        response.flash = T('Form has errors')    return dict(form = form)
def report_form_test_1():    redirect_url = 'report_test_1'    form = SQLFORM.factory(    Field("test_0", "reference test_0",           requires = IS_IN_DB(db, 'test_0.id', db.test_0._format, cache = (cache.ram, 3600) ) ) )    if form.process().accepted:        test_0 = form.vars.test_0        #response.new_window = URL(redirect_url, args = test_0)        redirect(URL(redirect_url, args = test_0) )    elif form.errors:        response.flash = T('Form has errors')    return dict(form = form)
def report_test_1():    test_0 = request.args(0)    query = (db.test_1.test_0 == test_0)    rows = db(query).iterselect(cache = (cache.ram, 3600), cacheable = True)    view_report_test_1 = dict(rows = rows)    return response.render(view_report_test_1)    #return view_report_test_1
in the book said :Use cache.ram as much as you can but make sure to use a finite set of keys, or else the amount of cache used will grow arbitrarily.
so my question is :1 the cache automatically clear after the expire time met or not? if not, so we must cleared it manually by using cache.ram.clear() or cache.disk.clear(), so that the size of cache didn't grow isn't it?2 why in admin page clean function didn't clear the cache, it's just clean the errors and sessions but the response flash tell cache, sessions and errors cleared?
thanks and best regards,stifan

--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups "web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.



Programming list archiving by: Enterprise Git Hosting