我正在開發一個需要後端工作線程運行的.NET 4應用程序。此線程主要由以下代碼組成:ASP.NET中長時間運行的後臺進程 - Application_Start或單獨的進程?
while (true) {
//Check stuff in database
//Do stuff
//write to database/filesystem
Thread.sleep(60000)
}
ASP.NET應用程序只是數據庫的前端。
我的問題是放在這個工作循環最好的地方。看起來我的直接兩個選擇是(1)將它從Application_Start
方法中剝離出來,然後讓它運行,或者(2)將它捆綁在一個單獨的進程中(Windows服務?)
(1)明顯地需要ASP.NET代碼中的一些邏輯來檢查它是否仍在運行,因爲IIS可能會殺死它。整個應用程序邏輯集成在一個易於部署的軟件包中,它也很整潔。 (2)更加隔離,但感覺更加混亂。
什麼是最好的方法?
可能重複的[ASP.NET和長時間運行的後臺線程 - 他們如何混合?](http://stackoverflow.com/questions/323693/asp-net-and-long-running-background-threads-how -do-they-mix) – jrummell