2009-05-27 33 views
1

我有一個Web服務器和一個數據庫服務器,我想運行一個使用現有C#DLL訪問數據庫並執行一些計算的作業。C#中例程數據庫作業的計劃任務或服務?

是在C#中創建控制檯應用程序並將其安排在Web服務器(應用程序服務器)上以針對數據庫服務器運行的最簡單方法?

我看到SSIS作爲一個選項,但我不太清楚,所以我認爲安排一個控制檯應用程序作爲一項任務將是最好的。

您認爲如何?

回答

0

如果作業很小,則無需爲此編寫單獨的控制檯應用程序。您可以單獨編寫一個頁面,並寫入一個批處理文件,即調度程序,以調度它。您也可以通過窗口的用戶界面進行安排。除此之外,如果您的工作是維護計劃的計劃/步驟(如重新建立索引,對數據庫進行備份,碎片整理,清理歷史/日誌等),那麼請從您的sql服務器創建一個維護計劃,在「管理「文件夾可用。

0

您還可以從PowerShell腳本中調用您的C#DLL,並將該腳本作爲計劃任務執行。

對於需要在後臺立即採取行動的操作,我更願意爲我的每個項目提供服務。

0

您可以使用Quartz.NET庫(quartznet.sourceforge.net)在您的控制檯應用程序中進行調度,它是開源的,它的工作原理非常完美!

0

是最簡單的解決方案是創建一個單獨的控制檯應用程序並將其作爲計劃任務運行。

您可以訪問Web服務器,並且所有工具已經就位,無需安裝任何其他工具。

1

我是控制檯應用+計劃任務方法的忠實粉絲。它往往更清潔,更容易測試,並且如果事情向南轉移,則更容易重新運行。也就是說,如果您可以使用純SQL編寫計算,則可以將所有內容作爲SQL作業運行。或者,您可以利用SQLCLR(生活在SQL Server中的.NET程序集,基本上顯示爲sproc或UDF),也可以在SQL作業引擎中完全運行。

+0

我喜歡SQLCLR方法,因爲它使數據庫機器上的所有東西都保持隔離...... – 2009-06-08 22:16:10