Ha!!

Yes nginx/uwsgi...

That what I suspecting, it looks like the dict was kind of unique by user...

I think we should leave a note somewhere in the book about this issue...

I was in the process of exploring Redis cache or memcache just to see if
there were not improvement. I will look into Redis.

Thank you Anthony.

Richard

On Wed, Jan 13, 2016 at 12:19 PM, Anthony <abasta...@gmail.com> wrote:

> Are you using nginx/uwsgi? If so, I believe cache.ram would not be shared
> across the different uwsgi worker processes. You might consider switching
> to the Redis cache.
>
> Anthony
>
>
> On Wednesday, January 13, 2016 at 11:26:16 AM UTC-5, Richard wrote:
>>
>> Hello,
>>
>> Still struggle with this. I don't understand why cache dict is not
>> updated in real time...
>>
>> It get updated but there is a strange delay.
>>
>> Thanks
>>
>> Richard
>>
>> On Mon, Jan 4, 2016 at 4:18 PM, Richard Vézina <
>> ml.richard.vez...@gmail.com> wrote:
>>
>>> UP here!
>>>
>>> Any help would be appreciate...
>>>
>>> Richard
>>>
>>> On Mon, Dec 21, 2015 at 10:22 PM, Richard <ml.richard.vez...@gmail.com>
>>> wrote:
>>>
>>>> Hello,
>>>>
>>>> I am still under 2.9.5, I have a simple dict cached in ram which never
>>>> expire that I update when new key value are added to the system... Mainly
>>>> the dict contain id and their representation...
>>>>
>>>> It works flawlessly in dev, but once I pushed in prod, it seems that
>>>> the cached dict takes time to really update... Here how I manage the
>>>> creation an update of this dict :
>>>>
>>>> def set_id_represent(update_id_represent_if_elapsed_time=None, id=None
>>>> ):
>>>>     """
>>>>     Calling this function will create in globals the "id_represent"
>>>> variable if the call is made without
>>>>     id. If id is passed, it will update the id_represent dictionary
>>>> with new
>>>>     id and it representation.
>>>>     :param id:
>>>>     :param update_id_represent_if_elapsed_time:
>>>>     """
>>>>     if 'id_represent' not in globals():
>>>>         global id_represent
>>>>         id_represent = \
>>>>             cache.ram('id_represent',
>>>>                       lambda: {r.id: r.represent_field
>>>>                                for r in db().select(db.table_name.id,
>>>>                                                     db.table_name.
>>>> represent_field,
>>>>                                                     orderby=db.
>>>> table_name.represent_field)
>>>>                                },
>>>>                       time_expire=update_id_represent_if_elapsed_time)
>>>>     elif isinstance(id, int) or isinstance(id, long):
>>>>         id_represent_query = \
>>>>             db(db.table_name.id == id
>>>>                ).select(db.table_name.id,
>>>>                         db.table_name.represent_field,
>>>>                         orderby=db.table_name.represent_field)
>>>>         id_represent.update({r.id: r.represent_field for r in
>>>> id_represent_query})
>>>>     if id:
>>>>         return id_represent[id]
>>>>
>>>> set_id_represent(update_id_represent_if_elapsed_time=None)
>>>>
>>>> Then when I want to update the cached dict with new k, v :
>>>>
>>>> set_id_represent(id=my_id)
>>>>
>>>> I have made some test and print after the id_represent.update(...)
>>>> above from the function call and the dict seems to be updated... The
>>>> function that call set_in_represent(id=id) doesn't failed, but when we want
>>>> to access page which user id_represent[some_id], they all failed for a
>>>> couples of minutes... Like if the cached dict not get update immediately...
>>>>
>>>> Thanks for any pointer...
>>>>
>>>> Richard
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> 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.
>>>>
>>>
>>>
>> --
> 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.
>

-- 
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