Я использую Spring 2.5 и Quartz Scheduler 1.8.6 в кластерной конфигурации.Эта работа синхронизирует две базы данных.У меня есть следующая конфигурация:
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" id="quartzScheduler" lazy-init="false">
<property name="applicationContextSchedulerContextKey" value="applicationContext"/>
<property name="dataSource" ref="dataSource"/>
<property name="transactionManager" ref="transactionManager"/>
<property name="overwriteExistingJobs" value="true"/>
<property name="autoStartup" value="true"/>
<property name="triggers">
<list>
<bean class="org.springframework.scheduling.quartz.CronTriggerBean" id="someCronTrigger">
<property name="jobDetail" ref="myQuartzJobDetail"/>
<property name="cronExpression" value="${cronExpression}"/>
</bean>
</list>
</property>
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.instanceName">MyBatchScheduler</prop>
<prop key="org.quartz.scheduler.instanceId">AUTO</prop>
<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
<prop key="org.quartz.threadPool.threadCount">1</prop>
<!-- Don't set thread priority for now -->
<prop key="org.quartz.jobStore.misfireThreshold">30000</prop>
<prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
<prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.oracle.OracleDelegate</prop>
<prop key="org.quartz.jobStore.useProperties">false</prop>
<prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop>
<prop key="org.quartz.jobStore.isClustered">true</prop>
<prop key="org.quartz.jobStore.clusterCheckinInterval">5000</prop>
</props>
</property>
</bean>
Со свойством cronExpression
установлено значение:
cronExpression=0 * * * * ?
т.е. я хочу, чтобы он запускался каждую минуту.У меня есть две машины, выполняющие эту работу с точно такой же конфигурации .Я вижу этот результат:
Machine 1 Machine 2
2012-03-13 09:47:00,009 INFO Starting synchronization... 2012-03-13 09:46:00,041 INFO Starting synchronization...
2012-03-13 09:54:00,010 INFO Starting synchronization... 2012-03-13 09:51:00,041 INFO Starting synchronization...
2012-03-13 10:00:00,010 INFO Starting synchronization... 2012-03-13 09:57:00,042 INFO Starting synchronization...
2012-03-13 10:02:00,007 INFO Starting synchronization... 2012-03-13 09:59:00,042 INFO Starting synchronization...
Я в недоумении, почему эти два приложения не запускаются каждую минуту, как они должны быть.Например, из двух журналов, описанных выше, работа не запускается в 9:48, 9:49, 9:50, 9:52, 9:53 и т. Д. Есть идеи?
РЕДАКТИРОВАТЬ:
Итак, как я сказал в комментарии ниже, моя проблема заключалась в том, что был случайный процесс, который я не искал, который потреблял некоторые триггеры каждую минуту.Я убил тот случайный процесс, и тогда он заработал как надо.