2016-08-15 95 views
0

我試圖建立一個調度,這裏有我想要實現的功能:在ASP MVC中運行大量重要的後臺任務?

  • 大約100+任務,根據日程安排
  • 的任務將被重新執行不同的執行時間5分鐘後如果最初執行失敗。

我不知道如何實現它,但我最初的想法是使用緩存過期回調,但我不知道它是否是一個最佳解決方案,因爲我可能運行的任務對我來說是必不可少的應用。我希望它是健壯的,但我不知道從哪裏開始。

任何好的圖書館/技術,可以讓我實現我想要發生的事情?

+2

你不想要一個Windows服務而不是一個mvc應用程序嗎?也許MVC前端應用程序完成的某些事情會觸發服務執行某些操作,但對於後臺自動操作,您應該切換到服務。 – ADyson

回答

1

Hangfire是運行後臺進程的優秀工具之一。現在我已經將它用在了我的應用程序中,我非常喜歡它。

這是很容易實施和維護。它可以輕鬆縮放,可以託管在任何.net應用程序類型中,並且它是一個託管的.net庫。

更重要的是它是開源免費使用。 (Pro版本也可用於附加功能)

它最引人注目的功能是開箱即用的監視板,並且可以完全控制作業。

+0

好吧,我想我會用它來代替滾動我自己的。 –

2

ASP.NET並不適合這類任務,相反,您可能會更好地使用Windows服務來執行您的預定工作。

與其重新開發構建調度程序的輪子,或者使用煩人的windows服務項目 - 不可能調試和使用,我建議查看Topshelf和漂亮的Topshelf.Quartz項目;後者專門用於調度。

Topshelf不再需要構建,調試和安裝Windows服務,這是一個很好的途徑,可以幫助您實現這種目標!在石英

石英


注是不會被這裏的調度組件是完全必要的,特別是因爲它很可能是別的東西來學習;當然,您可以隨時根據您的日程安排要求,在您的服務中站起一個計時器,但Quartz with Topshelf將爲您處理大量的事情!