微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

springMVC+Quartz实现定时任务(2)—配置文件详解

原文链接:这里

0.前言

项目需要使用定时任务来触发一些操作,然后接触到quartz这个。花了几分钟看懂了怎么用,这篇文章主要记录下quartz的一些配置用法

注:本文不涉及从0开始,如何配置quartz,而是说明quartz配置好后如何使用。

需要看从0开始,如何配置quartz的,请看这篇文章

1.配置文件

在xml配置文件中大概需要4部分。xxxx.xml

1.要调用的工作类

2.定义调用对象和调用对象的方法

3.定义触发时间

4.配置总调度类

1.定义要调用的工作类
<bean id="myTask" class="com.hpaay.controller.warning.MessageController"></bean>

这个地方的id的名字可以随便起,但是要和下面的有对应(详情看下方图解)。class的内容是具体的类,一般是controller层的类。同一个类定义一次即可。

2.定义调用对象和调用对象的方法(任务)
<bean id="job1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailfactorybean"> <!-- 调用的类 --> <property name="targetobject" ref = "myTask"></property> <!-- 调用的类中具体哪个方法 --> <property name="targetmethod" value = "getInfo"></property> </bean>

对应关系:

上方定义工作类的id,和下方的要调用的类名称保持一致。同时,“调用工作类的哪个方法”指的是,上面出现的getInfo方法,实际上是com.hpaay.controller.warning.MessageController中的一个具体方法,而且一般没有参数。

3.定义触发时间

这个地方不详细讲触发时间的设置,关于触发时间的设置请看这篇文章

<bean id="trigger1" class="org.springframework.scheduling.quartz.crontriggerfactorybean"> <!--执行哪个任务 --> <property name="jobDetail" ref ="job1"></property> <!-- 什么时间执行 --> <property name="cronExpression" value ="0/30 * * * * ?"></property> </bean>

对应关系

注意id和ref的对应关系,这样才能连起来。

4.配置总调度类

这个一般配置一次就可以,后面之间在list里面添加就行。当然,你要是觉得不好分类,也可以定义多个

<!-- 配置总调度类 --> <bean class="org.springframework.scheduling.quartz.Schedulerfactorybean"> <property name="triggers"> <list> <ref bean="trigger1"/> </list> </property> </bean>

对应关系

5.完整代码

如下,供参考。

  <!-- 1.定义要调用的工作类 --> <bean id="myTask" class="com.hpaay.controller.warning.MessageController"></bean>   <!-- 2.定义要调用的工作类和具体方法--> <bean id="job1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailfactorybean"> <!-- 调用的类 --> <property name="targetobject" ref = "myTask"></property> <!-- 调用的类中具体哪个方法 --> <property name="targetmethod" value = "getInfo"></property> </bean>     <!-- 3.定义触发器和触发时间 --> <bean id="trigger1" class="org.springframework.scheduling.quartz.crontriggerfactorybean"> <!--执行哪个任务 --> <property name="jobDetail" ref ="job1"></property> <!-- 什么时间执行 --> <property name="cronExpression" value ="0/30 * * * * ?"></property> </bean>   <!-- 4.配置总调度类 --> <bean class="org.springframework.scheduling.quartz.Schedulerfactorybean"> <property name="triggers"> <list> <!-- 执行哪些触发器,可以列举多个 --> <ref bean="trigger1"/> </list> </property> </bean>  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐