Jeg eksperimenterede med Platform Cache og snuble over CacheBuilder
interface, der ser robust ud til vores brugscache. Det eneste problem er, hvordan kan jeg indstille tid til at leve i denne grænseflade? Som standard er det 24 timer, jeg vil indstille det til 2 timer.
Kode:
class UserInfoCache implements Cache.CacheBuilder { public Object doLoad(String userid) { User u = (User)[SELECT Id, IsActive, username FROM User WHERE id =: userid]; return u; }
Anvendelse:
User batman = (User) Cache.Org.get(UserInfoCache.class, ‘00541000000ek4c");
Svar
Dette ligner en begrænsning af CacheBuilder-brug.
Cache-builder skriver og læser data fra cachen for dig, og der er ingen måde, du kan indstille cache-TTL, når du bruger den som dig kan ses i dokumentationen: Cache-værdier sikkert med CacheBuilder-grænsefladen
Svar
Denne grænseflade hjælper dig kun med at hente værdier fra cachen uden at tilføje en masse ekstra kode til håndtering af cache-savner. Du skal stadig bruge metoden put
til enten Organ eller session cache for at gemme en værdi i cachen. Du kan indstille TTL-værdien, når du gør det.
Eksempel:
Cache.Org.put("00541000000ek4c", userVar, 60*60*2);