Yes, I agree.  This needs to be REMOVED FROM THE BOOK.  I've just wasted 
most of a day before realizing memcache is useless for sessions.

-- Joe

On Friday, January 18, 2013 at 1:03:01 AM UTC-8, Paolo wrote:
>
> Hi all, I have just tried the solution proposed on the issue but it doen't 
> work. 
> This is a really annoying bug not only because I have to login several 
> times in a day but also because I can lose my edits if I don't save my 
> changes in time (i.e, editing a wiki page).
> It might be better to remove from the book the advise of storing the 
> session in memcached unless we find a solution
>
> Paolo
>
> Il giorno domenica 30 settembre 2012 00:54:03 UTC+2, Robert Clark ha 
> scritto:
>>
>> Thanks everyone, have added an issue
>> http://code.google.com/p/web2py/issues/detail?id=1049
>>
>> On Sunday, September 30, 2012 3:51:10 AM UTC+13, Massimo Di Pierro wrote:
>>>
>>> It also looks to me memdb should not be implemented as it is. It should 
>>> be implemented as a plugin_adapter for DAL.
>>>
>>> On Saturday, 29 September 2012 09:50:37 UTC-5, Massimo Di Pierro wrote:
>>>>
>>>> I would prefer the syntax:
>>>>
>>>> session.connect(request, response, db=MEMDB(cache.memcache, 
>>>> session_expiry=3600))
>>>>
>>>>
>>>>
>>>> On Saturday, 29 September 2012 07:11:10 UTC-5, Niphlod wrote:
>>>>>
>>>>> yep, open a bug on http://code.google.com/p/web2py/issues/list
>>>>>
>>>>> On Saturday, September 29, 2012 5:24:07 AM UTC+2, Robert Clark wrote:
>>>>>>
>>>>>> Thanks, I am not having any problems with the memcached api & python 
>>>>>> interface, that part all works as advertised.
>>>>>>
>>>>>> The problem is that if you follow the deployment recipe for storing 
>>>>>> sessions in Memcached, then they always expire after 300s and there's no 
>>>>>> way to provide an expiry.  Here's what's the code from deployment recipe 
>>>>>> chapter of web2py book:
>>>>>>
>>>>>> from gluon.contrib.memcache import MemcacheClientmemcache_servers = 
>>>>>> ['127.0.0.1:11211']
>>>>>> cache.memcache = MemcacheClient(request, memcache_servers)
>>>>>> cache.ram = cache.disk = cache.memcache
>>>>>>
>>>>>> ..and..
>>>>>>
>>>>>> from gluon.contrib.memdb import MEMDB
>>>>>> session.connect(request,response,db=MEMDB(cache.memcache))
>>>>>>
>>>>>>
>>>>>> If you do this and connect to memcached with e.g. "-vv" you can see 
>>>>>> that session data is passed in with 300s expiry.  I may be missing 
>>>>>> something obvious.  Can I suggest altering the API to be something like 
>>>>>> this:
>>>>>>
>>>>>> session.connect(request, response, db=MEMDB(cache.memcache), 
>>>>>> session_expiry=3600)
>>>>>>
>>>>>> Thanks!
>>>>>>
>>>>>>
>>>>>> On Saturday, September 29, 2012 12:27:55 AM UTC+12, Jose C wrote:
>>>>>>>
>>>>>>> The only way I've found to change this is to explicitly modify the 
>>>>>>>> default value from this source file.
>>>>>>>>
>>>>>>>> Is there a better way to configure this value for session expiry 
>>>>>>>> from within application code?  Cheers.
>>>>>>>>
>>>>>>>> Far as I know it's done like this:  
>>>>>>>
>>>>>>> set(key=key, value=value, time=<seconds>) 
>>>>>>>
>>>>>>> where (from the source):
>>>>>>> @param time: Tells memcached the time which this value should expire
>>>>>>> , either
>>>>>>>         as a delta number of seconds, or an absolute unix time-since
>>>>>>> -the-epoch
>>>>>>>         value. See the memcached protocol docs section "Storage 
>>>>>>> Commands"
>>>>>>>         for more info on <exptime>. We default to 0 == cache forever
>>>>>>> .
>>>>>>>
>>>>>>>  Are you saying that doesn't work?
>>>>>>>
>>>>>>>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to