一、简介:Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 2.3.0。
二、因为定时调度,在很多业务上面都会涉及,想要根据自己的规则来生成自己想要的达到的目的。所以利用quartz来时间定时任务的触发。是非常有必要的。
三、所需要的jar
1)spirng-context.jar;
2) spring-context-support.jar
3) quartz.jar
四、配置(非注解版)
applicationContext.xml
<!-- 任务调度 -->
<!-- 1 将任务对象配置在ioc容器环境中-->
<bean id="dbu" class="com.util.DataBackUp"></bean>
<!-- 2 描述任务细节 接下来需要调度的任务内容由哪个对象提供 该对象中的哪个方法提供 -->
<bean id="jd" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref = "dbu"></property>
<property name="targetMethod" value = "backup"></property>
</bean>
<!-- 3 配置触发器trigger 为需要调度的任务设置触发的时间、周期 -->
<bean id="trigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref ="jd"></property>
<property name="cronExpression" value ="0/30 * * * * ?"></property>
</bean>
<!-- 4 配置总调度类 统一对触发器进行调度触发 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="trigger"/>
</list>
</property>
</bean>
public class DataBackUp {
public void backup()throws Exception{
System.out.println("数据备份过程."+new Date());
}
}
五、配置(注解版)
<?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"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-4.0.xsd ">
<!-- 任务调度 -->
<task:annotation-driven/>
<!--扫描你的任务所在的包 -->
<context:component-scan base-package="com.util"/>
</beans>
注意:增加命名空间。
@Component
public class QuartzTest {
@Scheduled(cron = "0/10 * * * * ?")
public void backup()throws Exception{
System.out.println("任务调度."+new Date());
}
}
六、时间规则
不在赘述时间规则,但是也很重要,直接引荐大神整理的好的成果!
欢迎各路大神前来指导~如有问题可及时联系~