如何远程管理Quartz

选项1:JMX

许多人问他们是否可以通过JMX管理Quartz,但我不确定为什么Quartz doc甚至不会提及它。 是的,您可以使用quartz.properties的以下命令启用石英中的JMX

org.quartz.scheduler.jmx.export = true

之后,您可以使用标准的JMX客户端(例如$JAVA_HOME/bin/jconsole进行远程连接和管理。

选项2:RMI

远程管理石英的另一种方法是在Quartz中启用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

RMI的功能在石英文档提到这里 。 Quartz没有客户端 API,但是对服务器和客户端使用相同的org.quartz.Scheduler 。 只是配置有所不同。 通过不同的配置,您将获得截然不同的行为。 对于服务器,您的调度程序正在运行所有作业,而对于客户端,它只是一个代理。 您的客户端调度程序实例将不会运行任何作业! 关闭客户端时必须非常小心,因为它确实允许您关闭服务器!

这些配置已在MySchedule项目中突出显示。 如果运行webapp,您应该会看到一个类似于此demo的屏幕,您将看到它提供了具有这些远程管理配置属性的许多石英配置示例。

如果使用RMI选项进行配置,实际上您仍然可以使用MySchedule Web UI将Quartz作为代理进行管理。 您可以查看和追溯作业,甚至可以停止或关闭远程服务器!

根据我的经验,虽然有使用Quartz RMI功能的缺点。 那就是它造成了单点故障。 如果您的RMI服务器端口已关闭,则不会进行故障转移!

参考: 如何A Programmer's Journal博客上从我们的JCG合作伙伴 Zemian Deng 远程管理Quartz


翻译自: https://www.javacodegeeks.com/2012/08/how-to-manage-quartz-remotely.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值