ASP.NET 核心缓存外部网络调用 X 次

ASP.NET Core cache external web call for X time

我有一个 WEB API 方法,在该方法中,我构建了一个模型,其中 1 个字段是从外部 API 构建的。但是速度优化很重要,我想将单个请求缓存到外部 API X 分钟一次。我正在尝试使用 HttpClient 和委托处理程序来实现它,但欢迎使用其他任何方式。

对我来说,更好的解决方案是将来自 WEB Api 的结果缓存在 内存缓存 分布式缓存

这里是我对分布式缓存所做的实现

    private readonly IDistributedCache _cache;
            public Constructor(IDistributedCache cache)
            {
                _cache = cache;
            }

     public async Task<MyModel> GetWebApiData(double? latitude, double? longitude)
        {    
               var key = $"MyKey";
                var cachedValue = await _cache.GetAsync(key);

                if (cachedValue == null)
                {
                    data = "CallWebApi"
                    await SetDataToCache(key, data);
                }
                else
                {
                    data = JsonConvert.DeserializeObject<MyModel>(Encoding.UTF8.GetString(cachedValue));
                }
}

    public async Task SetDataToCache(string key, MyModel data)
            {
                if (data != null)
                {
                    var json = JsonConvert.SerializeObject(data);
                    await _cache.SetAsync(key, Encoding.ASCII.GetBytes(json), new DistributedCacheEntryOptions()
                    {
                        AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10)
                    });
                }
            }