使用 JMX 和 RMI 远程管理 Quartz

原文地址为:http://www.oschina.net/question/12_67413

方法1: JMX

很多人询问如何通过 JMX 来管理 Quertz,很奇怪的是 Quartz 的文档完全没有提及这方面的问题,你可以在 quartz.properties 中通过以下配置来启用 JMX 的支持:

1 org.quartz.scheduler.jmx. export = true

然后你就可以使用标准的 JMX 客户端,例如 $JAVA_HOME/bin/jconsole 来连接到 Quartz 并进行远程管理。

方法2: RMI

另外一个远程管理 Quartz 的方法就是启用 RMI。如果你用的是 RMI 的方式,就会自动一个 Quartz 实例来作为 RMI 服务器,然后你可启动第二个 Quartz 实例来作为 RMI 客户端,二者通过 TCP 端口进行通讯。

服务器端调度实例配置方法(quartz.properties):

1 org.quartz.scheduler.rmi. export = true
2 org.quartz.scheduler.rmi.createRegistry = true
3 org.quartz.scheduler.rmi.registryHost = localhost
4 org.quartz.scheduler.rmi.registryPort = 1099
5 org.quartz.scheduler.rmi.serverPort = 1100

客户端调度器配置(quartz.properties):

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

 

关于 Quartz 的 RMI 特性的文档描述请看 这里 . Quartz 不提供客户端 API,服务器端和客户端都是使用 org.quartz.Scheduler,只是配置不同而已。通过不同的配置来执行不同的行为。对服务器端来说,调度器用来执行所有的作业;而客户端只是一个简单的代理,不运行任何作业,在关闭客户端的时候必须小心,因为它允许你也同时关闭服务器端。

这些配置都在我的示例程序 MySchedule 中有着重说明,如果你运行的是 Web 应用,你可以看到 这个演示 ,你将看到我们提供了很多 quartz 的示例配置用来做远程管理。

如果使用 RMI 方法,你可以用 MySchedule Web UI 做为一个代理来管理 Quartz,你可以查看作业,可停止服务器的运行。

根据我的经验,使用 RMI 方法的弊端就是创建一个新的单点故障,如果你的服务器端口宕掉了,就无法恢复。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值