2

我有一个运行 Spring Web 应用程序的两个 Tomcat 节点集群。我为 Quartz 配置了 aRAMJobStore并且正在切换以LocalDataSourceJobStore提供集群,以便每个作业最多在一个节点上运行。大多数作业(包括一些新作业)都在数据库上运行并受益于此功能。

不幸的是,我有一份工作在 RAM 中的数据上运行,并且没有设置同步。我能看到的最简单的解决方案是让一个作业简单地在所有节点上运行而无需协调,就像RAMJobStore.

有没有办法将作业配置为在 LocalDataSourceJobStore 下的所有节点上运行?

精确的时间并不重要,但作业必须每 30 分钟在每个节点上运行一次

4

1 回答 1

0

我还没有尝试过,但我认为您可以配置 2 个调度程序,一个用于集群作业,一个用于 RAM 作业存储。如果使用 spring 你会像这样配置。

对于集群存储

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="configLocation" value="classpath:quartz.properties" />
    ...... configure your clustered triggers here 
</bean> 

然后为 RAM Store 设置另一个具有不同 quartz.properties 文件的调度程序。

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="configLocation" value="classpath:quartz_ram.properties" />
    ...... configure your RAM store triggers here 
</bean> 
于 2013-04-18T18:42:58.950 回答