公司最近改用springMVC+mybatis框架,对于quratz集群定时任务今天修改了定时任务的执行时间,重启完项目之后发现并没有任何改动。
由于quratz 集群时,是将定时任务放到表里面的,在配置文件中重新修改定时任务的执行时间后发现表(qrtz_job_details)中的数据并没有变化,每次只能手动删除表数据后,重启项目才会改变。
于是在网上查了一下,果然有配置的地方。
<!-- 集群需持久化的Scheduler -->
<bean id="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
<property name="triggers">
<list>
<ref bean="demoJobTrigger"/>
</list>
</property>
<property name="applicationContextSchedulerContextKey">
<value>applicationContext</value>
</property>
<!-- Quartz 任务数据库持久化 -->
<property name="dataSource" ref="dynimicDataSource"/>
<!--可选,QuartzScheduler启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了 -->
<property name="overwriteExistingJobs" value="true" /> <!-- 加上这个就ok了-->
</bean>