Quartz任务调度

QuartzOpenSymphony开源组织在Job scheduling领域的开源项目,它可以与J2EEJ2SE应用程序相结合也可以单独使用。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");
}
}

猜你喜欢

转载自www.cnblogs.com/hzq-/p/8921416.html