Ik was aan het experimenteren met Platform Cache en kwam een CacheBuilder
interface tegen die er robuust uitziet voor onze gebruikscache. Het enige probleem is: hoe kan ik de tijd instellen om in deze interface te leven? Standaard is het 24 uur, ik wil het instellen op 2 uur.
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; }
Gebruik:
User batman = (User) Cache.Org.get(UserInfoCache.class, ‘00541000000ek4c");
Antwoord
Dit ziet eruit als een beperking van het gebruik van CacheBuilder.
Cache Builder schrijft en leest gegevens uit de cache voor u en er is geen manier om de cache TTL in te stellen wanneer u deze gebruikt zoals u kan in de documentatie zien: Waarden veilig opslaan met de CacheBuilder-interface
Antwoord
Deze interface helpt je alleen waarden uit de cache op te halen zonder veel extra code toe te voegen om cache-missers af te handelen. Je moet nog steeds de put
-methode gebruiken voor ofwel de Org- of sessiecache om een waarde in de cache op te slaan. U kunt de TTL-waarde instellen wanneer u dat doet.
Voorbeeld:
Cache.Org.put("00541000000ek4c", userVar, 60*60*2);