Re: Aktualisieren sich Volatiles in Object Caches?
Peter Zechmeister <[email protected]>
| Newsgroups | gmane.comp.web.zope.german |
|---|---|
| Message-ID | <1268295225.15210.28.camel@pze> |
> Was genau hast Du vor?
> - -aj
def ichKannVielZeitBrauchen(self, R):
foo = getattr(self, '_v_foo', None)
if foo\
and REQUEST.get('HTTP_CACHE_CONTROL','') != 'no-cache':
return foo
# Das braucht viel Zeit:
...
foo = Ergebnis von dem, was viel Zeit braucht
self._v_foo = foo
return foo
Es wird also etwas Aufwändiges in _v_foo gespeichert. Falls aber _v_foo
gestorben ist, wirds neu erzeugt.
Zusätzlich wird noch geprüft, ob ein User einen Browser-Force-Reload
verlangt. Dann wird auch neu erzeugt. Das kann gewünscht sein, falls
sich der Datenbestand, den foo verwendet geändert hat.
Es funktioniert so. Nur hab ich noch nicht sicher rausgekriegt, ob das
nur in dem einen Ram-Object-Cache bleibt, oder sich automatisch
ausbreitet. Nach euren Meinungen in diesem Thread, breitet es sich nicht
automatisch aus.
Wenn es sich nicht automatisch herumspricht, muss für jeden Object-Cache
bei Bedarf einzeln wieder neu generiert werden und weiters kann es zu
unterschiedlichen Zuständen in den Caches kommen, wenn sich der
Datenbestand ändert, weil ein Force-Reload ja dann auch immer nur einen
Cache betrifft.
Ram-Cache-Manager verhalten sich aber afaik genau so. Also nicht
thread/ZEO-übergreifend.
Alternative wäre, das persistent zu machen, aber dann schreibe ich ja
unnötig viel in die DB?
Grü
PeterZ
_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope