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实现定时任务并支持切换任务数据源
使用Quartz框架集成Spring,动态配置定时任务(个人思考)