Spring和Quarz集成,实现定时任务

Posted weiguolong0306

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring和Quarz集成,实现定时任务相关的知识,希望对你有一定的参考价值。

Spring和Quarz集成实现定时任务,是非常简单的一件事情。

因为实现其有各种各样的方法,这里介绍一个相对简单的方法。只需要简答的几部就可以实现:

Step1: 导入Spring 和Quartz相关的jar包,使用maven或直接下载下来,放入lib目录下均可;

Step2: 写一个定时任务的配置文件,如: app-quarz-spring.xml

Step3: 在这个配置文件中,配置的内容大致如下:

<!--自定义的bean , 此类可以不用集成quarz的job接口-->

<bean id="PreorderTimeoutJob" class="com.haier.xiaowei.guizi.jiqimao.job.PreorderTimeoutJob"></bean>
<!--绑定要自定义类的id 和 定时要执行的方法-->
<bean id="preorder_timeout_handler"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject"><!--自定义的类的ID-->
<ref bean="PreorderTimeoutJob" />
</property>
<property name="targetMethod"><!--绑定自定义类的方法-->
<value>PreorderTimeoutDetail</value>
</property>
</bean>
<!--
引入触发器 --> !

<bean id="preorder_timeout_cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="preorder_timeout_handler" />
</property>
<property name="cronExpression">
<!-- 间隔1分钟执行一次 -->
<value>0 0/1 * * * ?</value>
</property>
</bean><!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
     <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="preorder_timeout_cronTrigger"/>
</list>
</property>
     </bean>


以上是关于Spring和Quarz集成,实现定时任务的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot集成quartz实现定时任务并支持切换任务数据源

spring集成quartz实现定时任务

Spring Boot 入门:集成Quartz定时任务

使用Quartz框架集成Spring,动态配置定时任务(个人思考)

使用Quartz框架集成Spring,动态配置定时任务(个人思考)

quarz入门案例