Eu estava testando o Cache de Plataforma e me deparei com a CacheBuilder
interface que parece robusta para nosso cache de uso. O único problema é como posso definir o tempo de vida nesta interface? Por padrão, será 24 horas, quero definir como 2 horas.
Código:
class UserInfoCache implements Cache.CacheBuilder { public Object doLoad(String userid) { User u = (User)[SELECT Id, IsActive, username FROM User WHERE id =: userid]; return u; }
Uso:
User batman = (User) Cache.Org.get(UserInfoCache.class, ‘00541000000ek4c");
Resposta
Isso parece uma limitação do uso do CacheBuilder.
O construtor do cache grava e lê dados do cache para você e não há como definir o TTL do cache ao usá-lo como você pode ver na documentação: Valores de cache com segurança com a interface CacheBuilder
Resposta
Esta interface apenas ajuda você a recuperar valores do cache sem adicionar muitos códigos extras para lidar com perdas de cache. Você ainda precisa usar o método put
para qualquer um dos Cache de organização ou sessão para armazenar um valor no cache. Você pode definir o valor TTL ao fazer isso.
Exemplo:
Cache.Org.put("00541000000ek4c", userVar, 60*60*2);