gpt4 book ai didi

asp.net - 到期时自动刷新 ASP.NET 输出缓存

转载 作者:行者123 更新时间:2023-12-02 01:48:18 25 4
gpt4 key购买 nike

我有一些昂贵的页面,我像这样使用 ASP.NET 输出缓存来缓存,

[OutputCache(Duration=3600, VaryByParam = "none")]

显然,缓存将在 3600 秒(1 小时)后过期,下一个碰巧加载该页面的可怜人将不得不等待缓存从数据库中刷新。

我的问题是,如何让缓存在到期时立即刷新?这样当缓存刚刚过期时碰巧访问该页面的下一个人将不必等待缓存被刷新,而是使用新的缓存服务?

更新:我需要非常频繁地更新缓存(1 小时到 3 小时),因为我也不希望数据陈旧太久。

最佳答案

我认为,仅使用 OutputCache 就可以实现所需的功能。

基本上您需要数据存储和工作人员。对于存储,您可以使用从静态变量到外部数据库的任何内容。

worker 也一样。它可能只是简单的长时间运行的任务或外部服务。基本示例,因此您可以了解我在说什么

public class TestController : Controller
{
private static int _result = 0;


static TestController()
{
Task.Factory.StartNew(async () =>
{
while (true)
{
await Task.Delay(new TimeSpan(0, 0, 5));
_result++;
}

}, TaskCreationOptions.LongRunning);
}

public ActionResult Index()
{
return Json(_result, JsonRequestBehavior.AllowGet);
}
}

关于asp.net - 到期时自动刷新 ASP.NET 输出缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24198834/

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