Utilisation des API DynaCache pour exploiter le cache
Les extensions HCL Commerce peuvent interagir avec le cache à l'aide de l'interface DistributedMap . L'interface fournit des méthodes pour les opérations telles que put, get, clear et invalidate.
Obtention d'une référence à l'objet de cache :
InitialContext ctx = new InitialContext();
DistributedMap myCustomCache = (DistributedMap)
ctx.lookup(“services/cache/MyCustomCache”);
Une fois qu'une référence à l'objet de cache est obtenue, les méthodes put() peuvent être utilisées pour ajouter au cache. Selon la configuration du cache, la méthode met à jour les caches locaux et distants.
myCustomCache.put("cacheId", myCacheEntryObject )
final int priority = 1;
// the time in seconds that the cache entry should remain in the cache. The default value is -1 and means the entry does not time out.
final int timeToLive = 1800;
// the time in seconds that the cache entry should remain in the cache if not accessed.
// Inactivity is supported by the local cache but not by the remote cache
final int inactivityTime = 900
// Not supported
final int sharingPolicy = 0;
final String [] dependencyIds = new String [] {"dependencyId1", "dependencyId2"};
myCustomCache.put("cacheId", myCacheEntryObject, priority, timeToLive, inactivityTime, sharingPolicy, dependencyIds );
Utilisez l'interface get() pour lire un objet à nouveau à partir du cache. Si la mise en cache locale et distante est activée, HCL Cache tentera d'abord de charger l'objet à partir du cache local, puis à partir du cache distant uniquement si l'ID de cache spécifié n'a pas été trouvé dans le cache local.
Object cachedObject = myCustomCache.get(“cacheKey”);La méthode clear() vide le cache. La méthode invalidate() supprime à l'aide d'un ID de dépendance ou d'un ID de cache.
myCustomCache.clear();
…
myCustomCache.invalidate(“dependencyId1”);
Les entrées sont supprimées à la fois du cache local et du cache distant. Si la mise en cache locale est utilisée, des messages d'invalidation sont envoyés pour supprimer des entrées des caches locaux dans d'autres conteneurs.