2013-04-08 57 views
2

我有一個長時間運行的任務(幾個小時),通過Intranet界面上的網頁啓動。這是一個ASP.Net 3.5項目。當然,我可以擴展腳本超時並讓頁面運行幾個小時,但我認爲這不是一個乾淨的解決方案。我在某處讀到長時間運行的任務不應該是Web應用程序池的子項,因爲它可以隨時由IIS重置。尋找解決方案,我讀了一些關於Quartz.Net的內容,但大多數例子都在討論重複性工作。我想知道,當用戶要求它只運行一次的任務是否合適。還是有另一個更好的解決方案?另外,如果Quartz.Net是一個很好的方法,它應該作爲Windows服務運行,還是應該由ASP.Net網站使用Global.asax產生?Quartz.Net適合運行從ASP.Net 3.5頁面開始的長進程嗎?

回答

1

Quartz.net在這種情況下工作得很好。您可以在Quartz.net上安排一次性工作,並讓它在需要時運行。在工作中,這正是我們運行許多工作的方式。

儘管你應該設置Quartz.Net作爲Windows服務。 IIS回收Web應用程序,如果您在您的Web應用程序中運行Quartz.net,它將隨IIS的Web應用程序一起回收。