Jexpérimentais avec Platform Cache et je suis tombé sur linterface CacheBuilder
qui semble robuste pour notre cache dutilisation. Le seul problème est de savoir comment définir le temps de vie dans cette interface? Par défaut, ce sera 24 heures, je veux le définir sur 2 heures.
Code:
class UserInfoCache implements Cache.CacheBuilder { public Object doLoad(String userid) { User u = (User)[SELECT Id, IsActive, username FROM User WHERE id =: userid]; return u; }
Utilisation:
User batman = (User) Cache.Org.get(UserInfoCache.class, ‘00541000000ek4c");
Réponse
Cela ressemble à une limitation de lutilisation de CacheBuilder.
Le générateur de cache écrit et lit les données du cache pour vous et il ny a aucun moyen de définir le TTL du cache lorsque vous lutilisez comme vous peut voir dans la documentation: Mettre en cache les valeurs en toute sécurité avec linterface CacheBuilder
Réponse
Cette interface vous aide uniquement à récupérer les valeurs du cache sans ajouter beaucoup de code supplémentaire pour gérer les erreurs de cache. Vous devez toujours utiliser la méthode put
pour lun ou lautre Org ou Session cache pour stocker une valeur dans le cache. Vous pouvez définir la valeur TTL lorsque vous faites cela.
Exemple:
Cache.Org.put("00541000000ek4c", userVar, 60*60*2);