可以使任務「掃描啓動時的業務相關的數據庫表和石英錶的工作和每10分鐘之後」本身在羣集實例石英一個cron任務。
以下是基於Spring的解決方案。儘管您可以使用這個想法輕鬆轉換爲非基於彈簧的解決方案。
設置cron觸發每10分鐘內。
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="runMeJob" />
<property name="cronExpression" value="0 */10 * * * ?" />
</bean>
設置了一個Job。這裏你將需要一個Spring實例的類實例。這個類實例將有一個公共方法,當觸發器被觸發時它將被調用。在此方法中,您將編寫任務以掃描數據庫並安排這些作業。
<bean id="cronJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="yourObject" />
<property name="targetMethod" value="methodOfThatObject" />
</bean>
配置觸發和作業調度
<!--this should be your clustered quartz scheduler-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="jobDetails">
<list>
<ref bean="cronJob" />
</list>
</property>
<property name="triggers">
<list>
<ref bean="cronTrigger" />
</list>
</property>
</bean>
http://quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigJDBCJobStoreClustering? – Marvin
標籤[tag:clustering]是指數據挖掘問題。你的問題是關於Web服務器的負載平衡。 –
如果你的石英是聚集模式,那麼就不會有重複的工作。只有一個實例會負責執行它。因此,如果您的應用程序處於羣集模式,那麼您可以擁有多個應用程序實例。 –