spring定时任务日常问题汇总

时间:2021-05-14 07:54:10

springQuartz

Spring定时任务从老版本迁移到新版本要改变两个东西

org.springframework.scheduling.quartz.CronTriggerBean

改成

org.springframework.scheduling.quartz.CronTriggerFactoryBean

===========================================================================

org.springframework.scheduling.quartz.SimpleTriggerBean

改成

org.springframework.scheduling.quartz.SchedulerFactoryBean


后者无注入问题

老版springQuartz

<!--定时begin -->
<bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="1" />
<property name="maxPoolSize" value="100" />
<property name="queueCapacity" value="500" />
</bean>
<bean id="classname" class="you class path"></bean>

<bean id="smsJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="classname" />
<property name="targetMethod" value="execute" />
</bean>

<bean id="smsTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="smsJobDetail" />
<property name="cronExpression" value="0 0/5 * * * ?" />
</bean>

<bean id="taskTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="smsJobDetail" />
<property name="startDelay" value="10000" />
<property name="repeatInterval" value="60000" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="smsTrigger" />
<ref bean="rebateEntryTrigger" />
</list>
</property> <property name="taskExecutor" ref="executor" />
</bean>
<!--定时end -->

新版springQuartz

<!--定时begin -->
<bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="1" />
<property name="maxPoolSize" value="100" />
<property name="queueCapacity" value="500" />
</bean>
<bean id="class name" class="you class path"></bean>

<bean id="smsJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="smsJob" />
<property name="targetMethod" value="execute" />
</bean>

<bean id="smsTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="smsJobDetail" />
<property name="cronExpression" value="10 0/1 * * * ?" />
</bean>

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
lazy-init="false" autowire="no">
<property name="triggers">
<list>
<ref local="smsTrigger" />
</list>
</property>
<property name="autoStartup">
<!-- 定时器开关 -->
<value>true</value>
</property>
</bean>