Quartz Scheduler:在每个集群节点上触发一些作业,每个集群只触发一些作业

我在集群环境中使用Quartz Scheduler作为Spring bean。

我有一些使用@NotConcurrent注释的作业,它们每个集群运行一次(即仅在一个节点中,仅在一个线程中)。

现在我需要在集群的每个节点上运行一个作业。 我删除了@NotConcurrent注释,但它只在一台机器上的每个线程上运行。 它不会在其他节点上被触发。

我应该用什么来诠释这份工作?

示例:Job1 NotConcurrent annotated安排在午夜=>它每隔午夜只在一台机器上触发。 Job2注释安排在午夜=>它每隔午夜在每台机器上启动。

谢谢。

AFAIK Quartz作业始终在Quartz选择的单个节点上执行。 @NonConcurrent注释仅阻止Quartz在特定节点上同时执行相同的作业。

换句话说,您无法使Quartz同时在多个节点上执行作业。 它总是选择一个节点来执行作业。

要实现您描述的内容,您可能需要多个作业(使用相同的作业类且没有关联的触发器)。 然后,您需要实现某种协调器作业,该作业将通过JMX或RMI远程连接到各个节点并手动触发作业。

您可能需要查看我们的产品QuartzDesk( http://www.quartzdesk.com ),该产品提供的Web服务提供单端点,您可以通过该端点连接到各个Quartz调度程序实例,例如,触发它们上的作业。