0

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

但我不了解它的工作原理。

假设用户 X 在星期五下午 4 点访问了该站点,然后关闭了他的浏览器并关闭了他的计算机。缓存过期还会在星期六早上 8 点触发吗?如果没有用户访问该站点,我的进程还会每天触发吗?

基本上,我的问题归结为,这种方法可靠吗?还是取决于访问该网站的用户?

4

2 回答 2

2

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

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

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

希望这对你有帮助!

于 2011-08-01T16:41:41.830 回答
1

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

于 2011-08-01T16:43:43.143 回答