在asp.net Web应用程序中每隔几分钟刷新一次缓存

时间:2013-05-07 17:11:58

标签: asp.net caching

我有一个asp.net Web应用程序。我将一些从数据库中读取的数据添加到HttpContext.Cache中,但我希望每隔15分钟从数据库重新读取数据并将其设置在缓存中。我该怎么做呢?我将缓存中的条目添加到15分钟后过期。我在向缓存对象添加数据时查看了'CacheItemRemovedCallback',但在此回调中HttpContext未初始化,它正在返回null,因此,我无法将数据添加回缓存。有没有一种能够实现这一目标的机制?

2 个答案:

答案 0 :(得分:1)

为什么不在global.asax中的应用程序启动事件中设置时间事件以按照所需的时间间隔重新填充缓存。这不会延迟任何用户的UI。

protected void Application_Start()
{
    Timer customTimer = new Timer();
    customTimer.Elapsed += new ElapsedEventHandler(YourHandler.YourRepopulationEvent);
    customTimer.Interval = YourInterval;
    customTimer.Start();
}

答案 1 :(得分:1)

可能你可以使用缓存回调。请参考以下链接 Callback when cache expires in asp.net