海水正藍

          面朝大海,春暖花開
          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

          主站蜘蛛池模板: 遂昌县| 紫云| 塘沽区| 安陆市| 萝北县| 天全县| 循化| 剑河县| 图们市| 江川县| 阿克| 丹东市| 临西县| 扬州市| 仙居县| 固镇县| 肇州县| 高淳县| 北川| 水富县| 长丰县| 双鸭山市| 阳原县| 拜城县| 苍梧县| 广南县| 南昌市| 兰州市| 七台河市| 思茅市| 东光县| 扶绥县| 孟连| 辽源市| 固镇县| 高州市| 色达县| 福海县| 明水县| 蒙城县| 永和县|