2011-01-31 136 views
11

我對Quartz集羣有一些疑問,特別是關於如何在集羣內執行觸發器觸發/作業。選擇Quartz集羣中的節點來執行作業

  1. 當執行作業時,石英是否給予節點任何偏好?比如總是或從不是最後一次執行相同任務的節點,還是僅僅是首先獲得工作的節點?

  2. 是否可以指定應執行作業的節點?

回答

9

對此的回答將是一個「取決於」的東西。

對於quartz 1.x,答案是作業的執行總是(僅)在一個或多或少的隨機節點上。其中「隨機性」實際上是基於哪個節點首先獲得的。對於「繁忙」的調度程序(其中總是有很多作業要運行),這最終會在羣集節點間提供相當均衡的負載。對於非繁忙的調度程序(只是偶爾的作業),它有時可能看起來像是一個單一的節點正在啓動所有的作業(因爲調度程序會在作業執行完成時尋找下一個要啓動的作業 - 所以節點只需完成一次執行往往會找到下一份工作來執行)。

對於標準石英,石英2.0(測試版)的答案與上述相同。但是Terracotta人已經構建了他們的TerracottaJobStore企業版,它提供了更復雜的集羣控制 - 當您安排作業時,您可以指定集羣的哪些節點對作業的執行有效,或者您可以指定節點特性/必要條件等作爲「至少有100 MB可用RAM的節點」。這也與ehcache一起使用,以便您可以指定要在「由X鍵入的數據在本地」的節點上運行的作業。

+0

感謝信息。 – ButterflyCoder 2011-02-02 01:25:04