gpt4 book ai didi

spring - 在 Quartz JDBC 支持的集群的每个节点上运行一个作业

转载 作者:行者123 更新时间:2023-12-05 08:01:14 51 4
gpt4 key购买 nike

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

不幸的是,我有一项工作是对 RAM 中的数据进行操作,但没有设置同步。我能看到的最简单的解决方案是让一项作业在所有节点上简单地运行而无需协调,就像 RAMJobStore 所做的那样。

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

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

最佳答案

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

对于集群存储

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

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

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

关于spring - 在 Quartz JDBC 支持的集群的每个节点上运行一个作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15142294/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com