2010-12-09 44 views
2

我正在爲.NET中的大型系統設計應用程序數據緩存。應用程序數據緩存 - Quartz.NET vs任務列表?

應用程序數據緩存將從多個(10+)不同的系統或數據庫進行輪詢。它也需要在特定的時間間隔(30分鐘)刷新。

有兩種選擇對我來說。

第一個是使用Quartz.NET(或其他調度器框架)以一定的時間間隔觸發緩存構建器。看來我可以很容易地控制配置文件中的時間間隔,並且調度非常靈活。

第二個選擇是使用任務列表,其中一個或多個任務將拉取數據並構建緩存,最後一個任務將在可配置的時間段內休眠。然後我可以觸發任務列表並讓它運行直到應用程序關閉。

現在,我更傾向於第二種選擇,我可以通過取消令牌,以便對啓動和關閉過程有更多的控制。此外,單個任務可以分解來定義依賴關係,如任務層次結構。

以上哪種方式更好?有沒有更好的方法?

回答

1

那麼,如果它是標準的Asp.Net和SQL服務器,請探索SQLCacheDependency。其基於事件並且將在未決數據庫表發生變化時觸發。你不必每次輪詢數據庫。

+0

來源多種多樣,包括(不限於)XML,SQL服務器和Oracle。 – tonyjy 2010-12-09 18:54:12

3

你正在考慮我會建議調度這兩個選項,原因如下:

  1. 這件事情,你不必編寫和維護自己。
  2. 調度程序可以保留調度,所以如果應用程序重新啓動或重新啓動,調度程序將處理它。
  3. 任務在調度程序中調用作業(無論如何在Quartz.net中),您可以將它們設置爲以不同的時間間隔運行。你也可以讓一個工作觸發其他工作。
  4. 計劃程序提供對計劃和作業的編程訪問權限,因此您可以根據需要暫停,添加或刪除作業。