2014-10-19 173 views
0

我有本地和遠程dbs。出於某種原因,我想每隔5分鐘將本地和遠端的同步。我應該使用一種服務來執行同步使用計時器或在Windows服務器上安排任務嗎?調度任務與服務

回答

2

我以前總是爲定時任務製作Windows服務。但幾年前,我轉而採用任務調度程序的方式,沒有遺憾。

下面是我使用任務計劃方法發現的優點:

  1. 更少的代碼編寫(主要是因爲你沒有一個Timer的開銷)

  2. 容易調試(只需點擊F5並運行它,因爲這是一個正常的EXE)

  3. 更容易啓動臨時執行(如果您想要立即檢查結果,而不是等到下次定時執行n)

P.S.爲了將來的參考,這種類型的問題應該在Programmers Stack Exchange中真的被問到,因爲它是關於設計選項,而不是現有代碼的問題。

1

如果您使用的是MS SQL Server,並且本地(源)服務器至少有標準版或更高版本,那麼您應該考慮使用複製(SQL Server Express不能用作發佈服務器或分發服務器)。如果本地服務器具有Express版本,但遠程服務器的標準版本或更高版本應在遠程端設置PULL訂閱以從快速服務器提取數據。

如果複製不是這種情況,那麼我會提供使用計時器使用服務(使用SYSTEM帳戶運行),因爲您需要指定將使用哪個Windows帳戶運行計劃任務的任務。當帳戶的密碼發生變化時,您的任務將無法執行,甚至更糟糕,您將無法獲得任何有關它的信息。

如果您的頻率很長(每週一次或一天一次),那麼使用服務應該被視爲浪費系統資源,但我認爲5分鐘內可以接受。

0

您是否使用Windows作爲操作系統?如果是的話,我會編寫一個腳本文件來同步數據庫,並將腳本放到Task Scheduler中。

對於Ubuntu,預定任務將是我的選擇...