2016-07-10 29 views
0

Ich arbeite mit Infinispan 8.1.0.Infinispan Einstellung Cache-Wide Lebensdauer dynamisch zur Laufzeit

In meinem Projekt haben wir den Infinispan-Cache als Session-Cache gewählt, so wie jedes Mal, wenn ein Benutzer mit meinem System verbunden ist, ein benannter Cache, basierend auf Benutzer-ID und Session-ID, erstellt wird.

Mit infinispan wie ein Session Cache, müssen wir die Cache-Lebensdauer behandeln, wie wir es mit einem Session-Speicher tun sollten. Die Probleme, denen ich mich stellen muss, sind:

Wie kann ich den User-Session-Cache löschen, wenn der Benutzer den Browser schließt, ohne auf die Standard-Abmelden-Schaltfläche zu klicken?

Wie kann ich zur Laufzeit und dynamisch die Lebensdauer des User-Session-Cache aktualisieren? Tatsächlich muss die Verfallszeit der Benutzersitzung nach jeder Benutzeranforderung aktualisiert werden, andernfalls wird der Benutzer nach X Minuten nicht in der Lage sein, seine Daten innerhalb des Caches zu finden, selbst wenn seine Sitzung noch am Leben ist.

So ist es mit Infinispan möglich, zur Laufzeit und nach der Cache-Erstellung den Cache-Ablauf einzustellen, ohne ihn neu zu erstellen?

Antwort

1

Sie denken über den Cache anders als es verwendet werden soll. Ähnlich der Tabelle in relationalen DBs sollte es einen einzelnen Cache für alle Benutzer geben, und die Benutzer-ID und die Sitzungs-ID sollten einen Schlüssel anstelle eines Cache-Namens bilden.

Anschließend können Sie die Standardablaufeinstellungen für Einträge in diesem Cache festlegen (überschreibbar pro Eintrag). Aber der Cache selbst soll nicht als Ganzes ablaufen.