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 [email protected].
For more options, visit https://groups.google.com/d/optout.