海水正藍

          面朝大海,春暖花開
          posts - 145, comments - 29, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          【轉】使用 JMX 和 RMI 遠程管理 Quartz

          Posted on 2012-12-04 12:36 小胡子 閱讀(849) 評論(0)  編輯  收藏 所屬分類: Quartz

          方法1: JMX

          很多人詢問如何通過 JMX 來管理 Quertz,很奇怪的是 Quartz 的文檔完全沒有提及這方面的問題,你可以在 quartz.properties 中通過以下配置來啟用 JMX 的支持:

          org.quartz.scheduler.jmx.export = true

          然后你就可以使用標準的 JMX 客戶端,例如 $JAVA_HOME/bin/jconsole 來連接到 Quartz 并進行遠程管理。

          方法2: RMI

          另外一個遠程管理 Quartz 的方法就是啟用 RMI。如果你用的是 RMI 的方式,就會自動一個 Quartz 實例來作為 RMI 服務器,然后你可啟動第二個 Quartz 實例來作為 RMI 客戶端,二者通過 TCP 端口進行通訊。

          服務器端調度實例配置方法(quartz.properties):

          org.quartz.scheduler.rmi.export = true
          org.quartz.scheduler.rmi.createRegistry 
          = true
          org.quartz.scheduler.rmi.registryHost 
          = localhost
          org.quartz.scheduler.rmi.registryPort 
          = 1099
          org.quartz.scheduler.rmi.serverPort 
          = 1100

          客戶端調度器配置(quartz.properties):

          org.quartz.scheduler.rmi.proxy = true
          org.quartz.scheduler.rmi.registryHost 
          = localhost
          org.quartz.scheduler.rmi.registryPort 
          = 1099

          關于 Quartz 的 RMI 特性的文檔描述請看 這里. Quartz 不提供客戶端 API,服務器端和客戶端都是使用 org.quartz.Scheduler,只是配置不同而已。通過不同的配置來執行不同的行為。對服務器端來說,調度器用來執行所有的作業;而客戶端只 是一個簡單的代理,不運行任何作業,在關閉客戶端的時候必須小心,因為它允許你也同時關閉服務器端。

          這些配置都在我的示例程序 MySchedule 中有著重說明,如果你運行的是 Web 應用,你可以看到 這個演示,你將看到我們提供了很多 quartz 的示例配置用來做遠程管理。

          如果使用 RMI 方法,你可以用 MySchedule Web UI 做為一個代理來管理 Quartz,你可以查看作業,可停止服務器的運行。

          根據我的經驗,使用 RMI 方法的弊端就是創建一個新的單點故障,如果你的服務器端口宕掉了,就無法恢復。

          原文出自:

          http://www.oschina.net/question/12_67413


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 平山县| 雅安市| 南涧| 绍兴市| 喀喇| 常州市| 屏边| 甘南县| 鲁山县| 乌恰县| 呼玛县| 华安县| 资阳市| 青川县| 阿克苏市| 高碑店市| 大安市| 阿荣旗| 资溪县| 桓台县| 通辽市| 共和县| 红原县| 溧水县| 布拖县| 潢川县| 静安区| 牙克石市| 白沙| 会同县| 肥乡县| 仁寿县| 克拉玛依市| 滦南县| 平乐县| 太白县| 通道| 轮台县| 黑山县| 磐安县| 南澳县|