[英]Run a job on every node of a Quartz JDBC backed cluster
我有一個由兩個Tomcat節點組成的集群,它們運行一個Spring Web應用程序。 我為Quartz配置了RAMJobStore
並切換到LocalDataSourceJobStore
來提供集群,這樣每個作業最多只能在一個節點上運行。 大多數作業(包括一些新作業)都在數據庫上運行,並從此功能中受益。
不幸的是,我有一項作業要對RAM中的數據進行操作,並且沒有設置同步。 我能看到的最簡單的解決方案是,就像在RAMJobStore
所做的那樣,一項作業無需協調就可以在所有節點上簡單運行。
有沒有一種方法可以配置作業以在LocalDataSourceJobStore下的所有節點上運行?
准確的時間並不重要,但是作業必須每30分鍾在每個節點上運行一次
我還沒有嘗試過,但是我認為您可以配置2個Scheduler,一個用於群集作業,另一個用於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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.