我正在研究一個包含WCF服務的ASP.NET應用程序,該應用程序的目的是充當模擬生產環境的測試用例。這是一個複雜的後端,它可以通過它的Web服務接收訂單,然後幾小時,或幾天後發送通知(通過調用其他系統上的Web服務)。ASP.NET背景主題
該測試雙應用程序首次發佈的要求之一是它是無狀態的,即沒有數據庫。
由原始開發商誰是不再對項目到位的設計是:
- 通過Web服務,接收訂單。
- 菌種後臺線程
- 返回到客戶端
- 然後後臺線程休眠5一個罐頭響應 - 30秒發送一個通知,再次睡覺時,發送一個通知,重複也許三至四次,然後終於在沒有任何事情要做時終止
5到30秒的睡眠時間是爲了模擬生產系統的小時和長日延遲。每個後臺線程的活動時間不會超過三分鐘。
目前,該設計似乎很適合其目的。到目前爲止,這種方法遇到的唯一問題是,如果發生導致應用程序重新啓動的事情(web.config更改,部署新的DLL,重新啓動IIS等),後臺線程似乎被終止並且任何等待的後臺線程從未發生。
客戶現在已經決定5 - 30秒的延遲太短,通知之間延遲5分鐘更合適。這意味着後臺線程的生命週期可能超過20分鐘。
我的直覺是,讓延遲五分鐘可能不是這個設計的好主意。我很想看看人們的想法是什麼。
這種設計對於延遲時間的增加有多可靠?有沒有人有任何經驗,在ASP.NET中的長時間運行的後臺線程可以評論這個?