ASP.NET缓存过期的机制?

时间:2011-08-01 16:32:05

标签: asp.net cache-expiration

我有一项任务,我想每天早上8点运行,并考虑这个解决方案:http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

但我不了解其工作原理的机制。

假设用户X在星期五下午4点访问该网站,然后关闭他的浏览器并关闭他的电脑。缓存到期是否会在周六早上8点开始?如果没有用户访问该网站,我的流程每天都会开火吗?

基本上,我的问题归结为,这种方法可靠吗?或者它是否依赖于访问该网站的用户?

2 个答案:

答案 0 :(得分:2)

ASP.NET应用程序在IIS上托管(启动)时会触发几个事件,其中Application_Start是最重要的事件之一。设置后台任务然后继续运行,直到从IIS停止/卸载应用程序,或者IIS服务本身已停止。 IIS是所有ASP.NET网站的主机进程。

由于缓存是在Web服务器上维护的,因此它与活动用户无关。

这类似于控制台应用程序,其中第一行代码是使用计时器向缓存添加内容。只要您的控制台应用程序启动并运行就会运行。

希望这能帮到你!

答案 1 :(得分:1)

服务器端缓存与浏览器缓存不同。关闭浏览器的用户根本不会影响Jeff的代码。但是,如果您的应用程序池关闭(并且可能没有任何用户访问该站点),那么在有人浏览该站点之前您的代码将无法运行,应用程序池再次旋转,然后是早上8点第二天(假设应用程序池仍在运行)。