2016-05-24 2 views
3

Supposons que je souhaite mettre en cache les résultats d'appels de méthode coûteux. Ces entrées de cache doivent avoir une durée d'expiration différente (aka TTL). Est-ce possible avec JCache si les entrées sont placées dans la même instance Cache? Je suis conscient que je peux attribuer une ExpiryPolicy différente à chaque cache. Cependant je me demande s'il est possible d'assigner une durée d'expiration individuellement à un CacheEntry.JCache (JSR107) autorise-t-il différentes durées d'expiration pour différentes entrées?

Est-ce que JCache supporte cela? Si oui, j'apprécierais un lien vers un exemple de code pour cela. La portée de cette question est purement JCache sans aucune particularité d'implémentation.

Répondre

4

L'expiration de variable par entrée n'est pas prise en charge dans JCache. Contexte: Il était initialement prévu que les méthodes pour le ExpiryPolicy aient l'entrée en paramètre. Au cours de la finalisation de la norme, cela a été supprimé, car il y avait des soucis de surcharge supplémentaire en particulier pour les caches distribués, qui pourraient avoir besoin de transférer les données d'entrée sur le réseau avant que la politique d'expiration puisse être appelée.