中断石英集群中的工作

Ale*_*kov 7 java cluster-computing quartz-scheduler

我有一个包含多个实例的Quartz设置,我想在任何执行的地方中断作业.正如文档中所述,Scheduler.interrupt()方法不是群集感知的,所以我正在寻找一些克服这种限制的常见做法.

pou*_*sma 2

那么,这里有一些您应该用来实现这一目标的基础知识。

当以集群模式运行时,有关当前正在运行的作业的信息可在石英表中找到。例如,q_fired_triggers包含正在执行的作业。该表的第一列是负责它的调度程序名称。因此很容易知道谁在做什么。

然后,如果您启用quartz实例的JMX导出org.quartz.scheduler.jmx.export,您的MBean将启用一个新的入口点来单独远程管理每个调度程序。MBean 提供了一个方法boolean interruptJob("JobName", "JobGroup")

然后,您“只需”需要在适当的调度程序实例上调用此方法即可有效地中断它。

我手动尝试了所有过程,效果很好,只需要自动化:)

HIH