中断石英群集中的作业
我有一个具有多个实例的Quartz设置,并且我希望在作业执行的任何位置中断该作业。正如文档中所说,Scheduler.interrupt()
方法不支持集群,因此我正在寻找一些常见的实践来克服这种限制。
解决方案
好的,这里有一些您应该用来实现此目的的基本知识。
在集群模式下运行时,有关当前运行的作业的信息显示在石英表中。例如,q_fired_triggers
包含正在执行的作业。
该表的第一列是负责该表的调度程序名称。因此,很容易知道谁在做什么。
org.quartz.scheduler.jmx.export
,那么您将启用一个新的入口点来分别远程管理每个调度程序。MBean提供方法boolean interruptJob("JobName", "JobGroup")
然后您"只是"需要在相应的计划程序实例上调用此方法才能有效地中断它。
我手动尝试了所有流程,运行正常,只需自动化:)
HIH
相关文章