Awesome! Thank you very much for this explanation! All the best, Chris
On Tuesday, April 28, 2015 at 6:22:49 PM UTC-4, Leonel Câmara wrote: > > This one: > > A. Does the cached object get updated: > > The cached object is updated immediately because it's the same object. > Cache ram does not clone it. Notice that the behaviour will be different if > you're using cache disk. > > Do know that doing this is a very bad idea, as you will run into all sorts > of thread safety problems. You should consider cached values immutable if > you don't want to worry about safety yourself. > > > And finally, if I wish to force a changed value of some_object to be saved > to the cache, am I correct that I should then call: > some_object.arg3 = 1111 > some_object = cache.ram(self.id_attribute, lambda self, time=0) > > > This will force the change, but, again, if it's the same object the change > will already be there. > > > Does this mean that the next time someone instantiates an object of > class "SomeClass" with the same arg1 value but a different time_expire > value, the cached object will be overwritten? > > It will be overwritten if the cached value has a timestamp that is expired > with the given time_expire value. > > > > I think that maybe your problem is that you're not understanding what the > cache is actually saving in your example. When you put an object in cache > ram, what's actually in the cache is a reference to the object. So if you > have a reference to that same object somewhere else and you modify it, > you're actually modifying the same object that cache is referencing. > > Cache disk is different, because cache disk pickles your object and when > you ask it for a value it unpickles it, so each time you will get a new > object albeit with the same attributes. > -- 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.