spring-quartz定时任务使用小结
2018-03-20 14:52
369 查看
在实际项目中,通常须要用到定时任务(定时作业)。spring框架提供了非常好的实现。
1、 下载spring-quartz插件包
这里默认当前系统中是集成了spring框架的基本功能的。去网上下载spring定时器的jar包,这里用的是quartz-all-1.8.4.jar,下载完毕之后加入的项目的classPath中去。
2、编写定时任务运行模块的代码
spring使得定时任务编码十分方便。在编写运行模块时。不须要与不论什么spring框架的东西耦合,不须要继承或者实现某个类或接口,仅仅须要编写常规的类和方法。
通常将须要运行的业务逻辑编写成为一个方法,供定时器调用。
3、配置定时任务
配置文件放在和spring普通配置文件同一路径就可以。配置的逻辑是这种:
a首先初始化调度任务的类。这个配置与其它的常规配置一样,即使用spring的IOC机制,将定时任务看成一个普通的bean。
b然后配置任务运行task,由MethodInvokingJobDetailFactoryBean实现。
该配置告诉容器,由哪个类以及哪个方法运行将详细的定时任务。一个定时任务相应一个方法。也相应一个task配置。
这里须要配置两个參数,运行类的实例targetObject和运行方法targetMethod。
运行类的实例即为前面的配置。运行的方法是类中详细的运行任务的方法。
c接着。配置定时调度触发器,一般由CronTriggerBean实现,这个配置告诉spring何时运行某一个任务。这个配置须要两个參数:运行的任务jobDetail和触发时机表达式cronExpression。第一个參数的值即为前面的task,第二个是一个表达式,表示何时运行该任务。如0 0 0 1 * ?表示每月1好的0点0分触发该任务。详细的配置參照后面的描写叙述。
d配置中心调度器。由SchedulerFactoryBean实现,它告诉spring须要启动那些触发器。
这里仅仅有一个參数triggers,它接受一个触发器列表,有多少触发器就有多少定时任务。
到这里。配置完毕。
4、启动项目,測试。
5、实例:
a任务类
b配置文件
1、 下载spring-quartz插件包
这里默认当前系统中是集成了spring框架的基本功能的。去网上下载spring定时器的jar包,这里用的是quartz-all-1.8.4.jar,下载完毕之后加入的项目的classPath中去。
2、编写定时任务运行模块的代码
spring使得定时任务编码十分方便。在编写运行模块时。不须要与不论什么spring框架的东西耦合,不须要继承或者实现某个类或接口,仅仅须要编写常规的类和方法。
通常将须要运行的业务逻辑编写成为一个方法,供定时器调用。
3、配置定时任务
配置文件放在和spring普通配置文件同一路径就可以。配置的逻辑是这种:
a首先初始化调度任务的类。这个配置与其它的常规配置一样,即使用spring的IOC机制,将定时任务看成一个普通的bean。
b然后配置任务运行task,由MethodInvokingJobDetailFactoryBean实现。
该配置告诉容器,由哪个类以及哪个方法运行将详细的定时任务。一个定时任务相应一个方法。也相应一个task配置。
这里须要配置两个參数,运行类的实例targetObject和运行方法targetMethod。
运行类的实例即为前面的配置。运行的方法是类中详细的运行任务的方法。
c接着。配置定时调度触发器,一般由CronTriggerBean实现,这个配置告诉spring何时运行某一个任务。这个配置须要两个參数:运行的任务jobDetail和触发时机表达式cronExpression。第一个參数的值即为前面的task,第二个是一个表达式,表示何时运行该任务。如0 0 0 1 * ?表示每月1好的0点0分触发该任务。详细的配置參照后面的描写叙述。
d配置中心调度器。由SchedulerFactoryBean实现,它告诉spring须要启动那些触发器。
这里仅仅有一个參数triggers,它接受一个触发器列表,有多少触发器就有多少定时任务。
到这里。配置完毕。
4、启动项目,測试。
5、实例:
a任务类
public class MonthlyJob { private A a; /** * 详细任务 */ public void initWjxx() { ....... } public void setA( A a) { this.a = a; } }
b配置文件
<? xml version="1.0" encoding="UTF-8"? > <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 运行job的类 --> <bean id="monthlyJob" class="com.pmi.quartz.MonthlyJob"> <!-- 注入属性值 --> <property name="a" ref="a"/> </bean> <!-- 初始化调度任务 -问卷信息--> <bean id="simMonthlyJobTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!-- 调用的类 --> <property name="targetObject"> <ref bean="monthlyJob" /> </property> <!-- 调用类中的方法 --> <property name="targetMethod"> <value>initWjxx</value> </property> </bean> <!-- 触发器-问卷信息 --> <bean id="cronTriggerTest" class="org.springframework.scheduling.quartz.CronTriggerBean"> <!-- 指向我们的任务 --> <property name="jobDetail" ref="simMonthlyJobTask" /> <!-- 每月1号的00:00触发 --> <property name="cronExpression" value="0 0 0 1 * ?" /> </bean> <!-- 总调度器 --> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <!-- 触发器列表 --> <ref bean="cronTriggerTest" /> </list> </property> </bean> </beans>
相关文章推荐
- spring-quartz定时任务使用小结
- 使用Spring+Quartz的定时任务。
- Spring中使用quartz执行定时任务的两种方式
- 使用quartz+spring实现简单的可配置化的定时任务(可和数据库配套使用)
- 使用spring+quartz配置多个定时任务
- 使用Spring Quartz执行定时任务
- 使用spring quartz实现定时任务
- Spring使用之:Quartz定时任务为什么会被阻塞
- ssh中使用spring的集成quartz 编写定时任务
- 使用spring quartz实现定时任务
- Spring使用之:Quartz定时任务为什么会被阻塞
- 使用Spring提供Quartz来实现定时任务
- Spring之——quartz使用@Scheduled注解执行定时任务
- Spring中使用quartz执行定时任务的两种方式
- quartz 框架定时任务,使用spring @Scheduled注解执行定时任务
- Spring与Quartz的结合使用 主要用于定时任务!!!
- quartz 框架定时任务,使用spring @Scheduled注解执行定时任务
- Spring中使用quartz插件实现定时任务
- Spring 动态管理定时任务(使用quartz) 只是管理启动时间 不能做启动和暂停
- 使用spring 的Quartz 定时任务入门