spring定时器支持定时启动,间隔时间启动,一段时间内间隔时间启动,其中有用到cron表达式
定时器本质就是spring框架定时的帮你调用你自己写好的方法。
首先导入maven依赖当然这个是出来spring所需要的依赖之外的依赖
<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.0</version>
</dependency>
第一步配置bean就是把自己写好的类配置到spring容器中spring先去创建对象 跟普通bean配置方法一样。
<bean id="Timer" class="com.zsc.vip.PushState"></bean>
第二步 配置定时执行的方法
<bean id="timeDitail_ln_delivery" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="Timer"></property><!-- 指定任务类 -->
<property name="targetMethod" value="delivery"></property><!-- 指定任务方法 -->
<property name="concurrent" value="false" /><!-- 是否推迟执行,也就是说当有多个定时任务在同一时间执行时,会不会并发执行,false不会并发执行 -->
</bean>
第三步配置定时任务启动时间
<bean id="lnTigger_ln_delivery" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="timeDitail_ln_delivery"></property><!-- 定时任务方法的id -->
<property name="cronExpression">
<value>0 0/20 * * * ?</value><!-- 定时任务启动时间 这里用的是cron表达式 -->
</property>
</bean>
第四步配置定时任务触发器
<bean id="startJob" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="startupDelay" value="60" />
<property name="triggers">
<list>
<ref bean="lnTigger_ln_delivery"/>
</list>
</property>
<property name="autoStartup" value="true" />
</bean>
然后启动项目自己配置的定时任务就会自动的跑起来。