quartz简单demo,教你最快使用quartz

demo简介:

这是个简单quartz实例,主要quart配置集成spring,功能为每20秒输出一句内容!
效果如下:
2017-01-05 14:04:00,044  INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志输出
定时任务测试
2017-01-05 14:04:20,001  INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志输出
定时任务测试
2017-01-05 14:04:40,002  INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志输出
定时任务测试
2017-01-05 14:05:00,001  INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志输出
定时任务测试
2017-01-05 14:05:20,002  INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志输出
定时任务测试
2017-01-05 14:05:40,002  INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志输出
定时任务测试
2017-01-05 14:06:00,002  INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志输出
定时任务测试
2017-01-05 14:06:20,000  INFO (com.bbtree.project.demo.TaskDemo.java:13):dddd
日志输出
定时任务测试
 
demo实例类:
package com.bbtree.project.demo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* Created by Administrator on 2017/1/5.
*/
public class TaskDemo {
private static final Logger LOGGER= LoggerFactory.getLogger(TaskDemo.class);

public void doTask(){
LOGGER.info("dddd");
System.out.println("日志输出");
System.out.println("定时任务测试");
}
}
 
集成Spring配置:
 
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

<!--注册定时器-->
<bean id="demoTimer"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!--必须配置quartz延迟启动,在应用启动后起动,延迟20秒-->
<property name="startupDelay" value="20"/>
<!--普通触发器,触发器列表-->
<property name="triggers">
<list>
<ref bean="taskDemoTrigger"/>
</list>
</property>
</bean>
<!--CronTrigger配置-->
<bean id="taskDemoTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!--定时任务详细方法类-->
<property name="jobDetail" ref="taskDemoJobDetail"/>
<!--cron表达式-->
<property name="cronExpression">
<value>0/20 * * ? * *</value>
</property>
</bean>
<!--制定定时任务细节 调用哪个类 哪个方法-->
<bean id="taskDemoJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="taskDemo"/>
</property>
<property name="targetMethod">
<value>doTask</value>
</property>
<property name="concurrent" value="false"/>
</bean>
<!--定时任务的类-->
<bean id="taskDemo" class="com.bbtree.project.demo.TaskDemo"/>
<!--扫描项目包-->
<context:component-scan base-package="com.bbtree.project"/>
</beans>
注意事项:
1、配置文件applicationContext-scheduler.xml必须配置到applicationContext.xml里,才能进行扫描
<!-- 导入分割的spring配置文件 -->
<import resource="applicationContext-beans.xml"/>
<import resource="applicationContext-datasource.xml"/>
<import resource="applicationContext-cache.xml"/>
<import resource="applicationContext-scheduler.xml"/>
对应的applicationContext.xml必须在/WEB-INF/web.xml里配置
<!-- Spring上下文配置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext.xml</param-value>
</context-param>

 到此恭喜你已成功完成一个quartz的demo实例!

posted on 2017-02-06 15:23  程序狗狗  阅读(1769)  评论(0编辑  收藏  举报

导航