2016-05-24 12 views
3

Angenommen, ich möchte die Ergebnisse teurer Methodenaufrufe zwischenspeichern. Diese Cache-Einträge sollten eine andere Ablaufdauer haben (aka TTL). Ist dies mit JCache möglich, wenn die Einträge in die gleiche Cache-Instanz gestellt werden?erlaubt JCache (JSR107) unterschiedliche Ablaufdauern für verschiedene Einträge?

Mir ist bewusst, dass ich jedem Cache eine andere ExpiryPolicy zuweisen kann. Ich frage mich jedoch, ob es möglich ist, einem CacheEntry eine Ablaufdauer individuell zuzuordnen.

Unterstützt JCache dies? Dann würde ich mich über einen Link zu einem Codebeispiel freuen. Der Umfang dieser Frage ist rein JCache ohne implementierungsspezifische Merkmale.

Antwort

4

Variabler Ablauf pro Eintrag wird in JCache nicht unterstützt.

Hintergrund: Es war ursprünglich geplant, dass die Methoden für die ExpiryPolicy den Eintrag als Parameter haben. Während der Finalisierung des Standards wurde dies entfernt, da Bedenken hinsichtlich eines zusätzlichen Overheads insbesondere für verteilte Caches bestanden, die möglicherweise die Eintragsdaten über das Netzwerk übertragen müssen, bevor die Ablaufrichtlinie aufgerufen werden kann.