2011-08-01 26 views
0

我有,我想每天早上8點運行,並正在考慮這種解決方案任務:http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/ASP.NET緩存過期的機制?

但我不理解它是如何工作的機制。

假設用戶X週五下午4點訪問該網站,然後關閉瀏覽器並關閉電腦。星期六上午8點緩存過期還會繼續嗎?如果沒有用戶訪問該網站,我的流程每天是否仍會啓動?

基本上,我的問題歸結爲,這種方法可靠嗎?還是依賴於訪問該網站的用戶?

回答

1

服務器端緩存與瀏覽器緩存不同。關閉瀏覽器的用戶根本不會影響Jeff的代碼。但是,如果您的應用程序池關閉(並且可能沒有任何用戶訪問該站點),那麼只有當有人瀏覽到該站點時,您的代碼纔會運行,應用程序池將再次啓動,然後是早上8點第二天(假設應用程序池仍然在運行)。

2

ASP.NET應用程序在IIS上託管(啓動)時會觸發少量事件,其中Application_Start是最重要的事件之一。設置一個後臺任務然後一直運行,直到應用程序從IIS停止/卸載,或者IIS服務本身停止。 IIS是所有ASP.NET網站的主機進程。

由於緩存是在Web服務器上維護的,因此它與活動用戶無關。

這類似於控制檯應用程序,其中第一行代碼使用計時器向緩存添加內容。只要您的控制檯應用程序啓動並運行即可運行。

希望這可以幫助你!