gpt4 book ai didi

c# - 如何在C#/MVC中缓存web服务结果而不是一直调用web服务

转载 作者:太空狗 更新时间:2023-10-30 01:06:50 25 4
gpt4 key购买 nike

我正在构建一个小型 Web 应用程序,它主要用于调用外部 REST/JSON Web 服务、传递一些参数并在表中将结果返回给用户。

我知道来自此外部服务的数据不会经常更改(可能一天一次),我想防止为同一查询多次调用网络服务。

什么是实现某种缓存的好方法?

目前我整理了一些东西(哪种方法有效,但我认为这不是正确的方法):

  1. 用户输入搜索参数

  2. 尝试 { LINQ 查询从列表中选择结果}

  3. Catch { 调用网络服务,用结果填充列表,然后重新运行 LINQ 查询。如果仍然没有结果则抛出异常

我想我会在一天结束时清空列表,这样它每天都会重建。

代码有点乱,但大多数似乎都能正常工作 - 有没有更好的方法来实现这一目标?

最佳答案

您可能想使用现有的缓存类之一来为您处理过期策略,例如System.Web.HttpContext.Current.Cache。您可以根据查询参数创建缓存键,并首先在缓存中查找它。如果数据不存在,您可以调用 Web 服务并将结果添加到缓存中,绝对到期时间为 12 小时 - 如果仍然没有结果,则抛出异常。

如果您使用的是 .Net 4,那么在 System.Runtime.Caching 命名空间中有一些额外的缓存选项,或者您可以查看企业库中的缓存应用程序 block 。

关于c# - 如何在C#/MVC中缓存web服务结果而不是一直调用web服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14171915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com