2010-06-28 80 views
1

我正在創建一個系統,用戶可以設置郵件在特定時間外出。在我之前我想得到一些建議。首先,是否有一個.Net組件可以處理調度作業(運行另一個應用程序或調用一個URL),它將按我的建議進行操作(Open Source會很酷)?如果沒有,最好是在SQL中安排作業並運行某種腳本,創建一個.Net服務,它將查看xml文件或數據庫以查看日程安排,或讓應用程序創建計劃任務?可能會有很多任務,所以我想創建計劃任務或SQL作業可能不是一個好主意。 這裏可能是一個典型的場景;用戶想要發送簡訊給他們的客戶。用戶在週六創建新聞簡報,但不希望到週一才發佈。用戶希望每個星期一發送相同的電子郵件一個月。 感謝您的期待!調度任務建議? .Net,SQL Job?

回答

1

退房Quartz.NET

Quartz.NET是一個全功能的,開放 源作業調度系統,可以 從最小的應用程序用於大型 規模的企業系統。

1

如果您想使用Windows本身的隨時可用的服務,請查看這篇文章A New Task Scheduler Task Library CodeProject上關於如何從C#應用程序在Windows中創建scheuled任務。

如果您在Windows中使用C#和計劃任務,您可能會擁有更多的靈活性和強大功能,而不是僅限於SQL Server中可以完成的工作。 SQL Server代理作業非常棒 - 對於數據庫特定的東西,主要是維護計劃等等。

1

您可以構建自己的Windows服務來安排和執行作業。一定要做出好的抽象。在一個類似的項目中,我使用了一個抽象,其中調度項目被抽象爲由任務組成的作業。例如,發送簡報可能是一項工作,而向每位訂閱者發送簡報可被視爲一項任務。然後,您需要在定義的線程模型中運行作業和任務,最好使用線程池線程或任務並行庫。儘可能確保爲IO使用異步API。也將您的調度邏輯與抽象分開。以便調度邏輯可以執行任意類型的作業及其包含的任務。