public async Task <IActionResult> ListarUsuarios() { _requestCount++; Debug.WriteLine($"listar-usuarios, {_requestCount}ª vez"); //if (_requestCount % 6 != 0) { await Task.Delay(3000); //1 Minuto //return StatusCode((int)HttpStatusCode.RequestTimeout, "TimeOut..."); } var cacheKey = "usuarios"; var cacheUsuarios = _distributedCache.GetString(cacheKey); if (!string.IsNullOrEmpty(cacheUsuarios)) { var usuarios = JsonConvert.DeserializeObject <List <Usuario> >(cacheUsuarios); return(Ok(usuarios)); } else { var usuarios = _mapper.Map <List <Usuario> >(_repositorioUsuario.ListarUsuario()); var distributedCacheOption = new DistributedCacheEntryOptions(); distributedCacheOption.SetAbsoluteExpiration(TimeSpan.FromMinutes(_configurationRedis.getConfiguration().tempoCacheMinutos)); _distributedCache.SetString(cacheKey, JsonConvert.SerializeObject(usuarios), distributedCacheOption); return(Ok(usuarios)); } }
public ActionResult <List <AreaViewModel> > Get() { var cacheKey = "areas"; var cacheAreas = _distributedCache.GetString(cacheKey); if (!string.IsNullOrEmpty(cacheAreas)) { var areas = JsonConvert.DeserializeObject <List <AreaViewModel> >(cacheAreas); var distributedCacheOption = new DistributedCacheEntryOptions(); return(areas); } else { var areas = _mapper.Map <List <AreaViewModel> >(_areaRepository.ListarTodos().ToList()); var distributedCacheOption = new DistributedCacheEntryOptions(); distributedCacheOption.SetAbsoluteExpiration(TimeSpan.FromMinutes(_configurationRedis.getConfiguration().tempoCacheMinutos)); _distributedCache.SetString(cacheKey, JsonConvert.SerializeObject(areas), distributedCacheOption); return(areas); } }