Java 如何在运行时管理Quartz作业的群集模式?
我正在群集模式下运行Quartz作业。这是我的配置。是否可以更改作业运行时(JMX RMI)的节点 例如,我的服务器有2个节点。第一个太忙了,所以我需要换第二个工作Java 如何在运行时管理Quartz作业的群集模式?,java,spring,quartz-scheduler,Java,Spring,Quartz Scheduler,我正在群集模式下运行Quartz作业。这是我的配置。是否可以更改作业运行时(JMX RMI)的节点 例如,我的服务器有2个节点。第一个太忙了,所以我需要换第二个工作 myApp 自动的 60000 org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.impl.jdbcjobstore.StdJDBCDelegate Q 真的 org.quartz.siml.SimpleThreadPool 5. 5. 真的 真的 quartz:type=Qua
myApp
自动的
60000
org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.impl.jdbcjobstore.StdJDBCDelegate
Q
真的
org.quartz.siml.SimpleThreadPool
5.
5.
真的
真的
quartz:type=QuartzScheduler,name=JmxScheduler,instanceId=NONE\u集群
不是直接的。我不认为选择运行作业的服务器是Quartz标准版本的一部分。可在以下网址获得:
如果您想继续使用RMI,您可能会编写一个程序,根据条件逻辑关闭集群中的一个调度程序(如果禁用该作业,将阻止将来在所有服务器上执行)。发件人:
当通过RMI使用Quartz时,需要启动Quartz实例
配置为通过RMI“导出”其服务。然后创建
通过将Quartz调度程序配置为“代理”其
工作到服务器
要启用RMI,请执行以下操作:
true
详细描述整个过程,并显示从客户端管理远程实例的示例。修改他们的示例以关闭调度程序
如果您愿意使用现成的解决方案,则是用于管理Quartz的基于web的UI。它能够管理远程实例
另一种方法是在Quartz之外管理同步。允许在所有节点上启动作业,但使用作业中自己的逻辑来确定当前节点是否应实际执行任何处理。可以使用JGroups或类似的库在节点之间传递负载信息
最后,您是否考虑过石英可能不是适合这项工作的工具?听起来分布式队列可能比较合适。例如,一组相互竞争的客户机尽可能快地从队列中提取工作项