有一個ASP.NET 2.0的Web應用程序應該允許發送電子郵件。我有一個立即發送電子郵件的Windows服務。我的Web應用程序根據某個模板編寫電子郵件並將其放入MSMQ中,服務從此處獲取。ASP.NET後臺工作線程
問題是,編寫來自模板的消息可能需要一些時間,並且我不希望用戶在構建消息並將其傳遞給服務時等待。
我想了解一些後臺進程,它將監聽通知請求的內部隊列。如果隊列爲空,則該進程什麼都不做,但一旦出現消息,它就開始處理消息。我想只有一個進程不要創建大量線程。
目前我的想法是編寫任務調度程序,它將包含通知請求的隊列。當新項目被添加到隊列中時,調度器檢查發送通知的過程是否正在運行。如果是,那麼它只是將請求添加到隊列中。否則,它會創建一個新的線程,讀取隊列直到它爲空並執行通知請求。
我的問題是我需要確保我的線程不會在ASP.NET完成對客戶端的響應之後死掉,因爲它是我的線程的父線程。問題是做這件事的最好方法是什麼(或者可以做到這一點)?
P.S.如果IIS由於用戶不活動而回收ASP.NET進程,我的線程就會死掉。
ASP.NET返回響應並終止處理響應的進程後,此線程是否會死機? – lostaman 2011-02-23 16:56:04
@lostaman - 它將存活,線程屬於對象,objet位於緩存中。所以它會一直活着,直到緩存死亡,這幾乎是一個應用程序池/ iis重置。 – Peter 2011-02-23 17:40:54
但是這個線程如何連接到緩存? – lostaman 2011-02-23 18:08:55