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實例!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM