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));
            }
        }
示例#2
0
        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);
            }
        }