Como atribuir tempo de cache para viver na interface CacheBuilder?

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"); 

Soure : https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_interface_cache_CacheBuilder.htm

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);

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *