Java 如何在运行时管理Quartz作业的群集模式?

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

我正在群集模式下运行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=QuartzScheduler,name=JmxScheduler,instanceId=NONE\u集群

不是直接的。我不认为选择运行作业的服务器是Quartz标准版本的一部分。可在以下网址获得:

如果您想继续使用RMI,您可能会编写一个程序,根据条件逻辑关闭集群中的一个调度程序(如果禁用该作业,将阻止将来在所有服务器上执行)。发件人:

当通过RMI使用Quartz时,需要启动Quartz实例 配置为通过RMI“导出”其服务。然后创建 通过将Quartz调度程序配置为“代理”其 工作到服务器

要启用RMI,请执行以下操作:

true

详细描述整个过程,并显示从客户端管理远程实例的示例。修改他们的示例以关闭调度程序

如果您愿意使用现成的解决方案,则是用于管理Quartz的基于web的UI。它能够管理远程实例

另一种方法是在Quartz之外管理同步。允许在所有节点上启动作业,但使用作业中自己的逻辑来确定当前节点是否应实际执行任何处理。可以使用JGroups或类似的库在节点之间传递负载信息

最后,您是否考虑过石英可能不是适合这项工作的工具?听起来分布式队列可能比较合适。例如,一组相互竞争的客户机尽可能快地从队列中提取工作项