有一個Spring Web應用程序 - Yevi。 Yevi部署在具有6個節點的集羣環境中。所有節點使用共享的Yevi部署包。應用程序在applicationContext.xml中具有以下配置:Spring Quartz Scheduler服務僅需要在單個節點上運行,而不是在所有節點上運行
<bean id="cronYeviTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="YeviJob"/>
<!-- run every morning at 6 AM -->
<property name="cronExpression" value="0 0 6 * * ?"/>
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="YeviTrigger"/>
</list>
</property>
<property name="configLocation" value="classpath:quartz.properties"/>
</bean>
而且,quartz.properties現在什麼也沒有。上述CRON工作設計爲每天早上6點運行,並在業務操作完成後執行一些業務操作並休息。並且,同時再次醒來並執行相同的業務操作。
我認爲這個問題與集羣環境有關。一旦所有節點啓動並運行。創建6個CRON作業 - 每個節點上有一個作業,期望的業務操作每天執行6次,而不是一次。
我認爲,必須進行某種配置才能在單個節點上只運行一次而不是運行所有節點。我需要它在上午6點運行這個CRON Job,只有一個節點,如果該節點完成,那麼在故障切換時它應該檢查下一個節點並在那裏運行CRON Job。
謝謝!