中断石英集群中的工作

时间:2012-10-25 10:32:34

标签: java cluster-computing quartz-scheduler

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

1 个答案:

答案 0 :(得分:2)

嗯,这里有一些你应该用来实现的基础知识。

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

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

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

我手动尝试了所有这些过程并且工作正常,只需要自动化:)

HIH