Quartz是OpenSymphony开源组织在Job scheduling领域的开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。
Quartz是一个任务日程管理系统,一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)其他软件组件的系统。
Quartz他的核心对象: Scheduler--核心调度器
Job任务
JobDetail任务描述
Trigger--触发器
pom.xml文件
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.1.3.RELEASE</version>
</dependency>
application.xml文件:
<!--配置任务对象-->
<bean id="quartzDemo" class="com.hzq.QuartzDemo"></bean>
<!--配置任务详情-->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="quartzDemo"></property>
<property name="targetMethod" value="run"/>
</bean>
<!--创建触发器-->
<bean id="targer" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!--配置作业对象-->
<property name="jobDetail" ref="jobDetail"/>
<!--通过Cron表达式指明触发器的条件-->
<property name="cronExpression" value="0/3 * * * * ?"/>
</bean>
<!--创建调度者-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="targer"/>
</list>
</property>
</bean>
任务方法
public class QuartzDemo {
public void run(){
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) );
}
}
测试:
public class TestQuartz {
public static void main(String[] args) {
new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
}
}