我聽說過Jeff和Joel在播客中討論了他們所謂的「心跳」,它實質上是創造類似於運行Windows服務在一個網站。我希望能夠更深入地瞭解如何實現這樣的事情。有沒有人實施過這樣的事情,你有什麼用途?在Asp.Net中創建「心跳」或Windows服務類功能
謝謝!
我聽說過Jeff和Joel在播客中討論了他們所謂的「心跳」,它實質上是創造類似於運行Windows服務在一個網站。我希望能夠更深入地瞭解如何實現這樣的事情。有沒有人實施過這樣的事情,你有什麼用途?在Asp.Net中創建「心跳」或Windows服務類功能
謝謝!
我在地點組合中找到了答案。我拿出了Jeff Attwood爲stackoverlow here以及Code Project article所做的工作,並且創建了一些完全可重用且可以使用IoC工具輕鬆連接的東西。我已經發布了詳細信息here
基本上你使用一個網頁揭開序幕的過程...但你把過程可以運行的頻率上限。
事情是這樣的:
TimeSpan timeSinceLastRun = DateTime.Now.Subtract(lastRunTime);
if(timeSinceLastRun > interval) {
RunCustomProcess();
lastRunTime = DateTime.Now;
}
這樣你只需要確保偶爾有人(或程序)訪問該網頁。多次點擊頁面不會對您的過程產生不利影響。
是儲存像lastruntime這樣的變量的理想地點...是global.asa唯一的地方嗎? – 2009-06-24 14:30:10
可能位於數據庫中,或者可能僅僅來自HttpApplication狀態。 – 2009-06-26 03:35:01
您可以使用ASP.NET運行狀況監視並將某些東西連接到WebHeartbeatEvent。
死鏈接已死。 – Gusdor 2015-11-27 16:44:53