Ich habe und Zope-Dienstprogramm mit einer Methode, die Netzwerkprozesse durchzuführen. Da das Ergebnis für eine Weile gültig ist, verwende ich plone.memoize.ram
, um das Ergebnis zwischenzuspeichern.Invalidate/verhindern memoize mit plone.memoize.ram
MyClass(object):
@cache(cache_key)
def do_auth(self, adapter, data):
# performing expensive network process here
... und die Cache-Funktion:
def cache_key(method, utility, data):
return time() // 60 * 60))
Aber ich will die memoization verhindern stattzufinden, wenn der do_auth
Anruf leer Ergebnisse zurückgibt (oder Netzwerkfehler zu erhöhen).
Mit Blick auf die plone.memoize Code scheint es, ich brauche raise ram.DontCache()
Ausnahme, aber bevor ich dies tun muss ich eine Möglichkeit, den alten zwischengespeicherten Wert zu untersuchen.
Wie kann ich die zwischengespeicherten Daten aus dem Cache-Speicher?