一、什么是Quartz
Quartz是OpenSymphony开源组织在Job scheduling领域的开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。
Quartz是一个任务日程管理系统,一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)其他软件组件的系统。
Quartz用一个小Java库发布文件(.jar文件),这个库文件包含了所有Quartz核心功能。这些功能的主要接口(API)是Scheduler接口。它提供了简单的操作,例如:将任务纳入日程或者从日程中取消,开始/停止/暂停日程进度
二、定时器概念
比如:购物车, 每天晚上凌晨2点~ 6点, 去做价格的比对, 用户购物车里的商品的信息,与数据库中的商品的信息进行比较, 如果购物车里的商品价格小于现有的数据库里的商品价格,把购物车里的的商品价格改为数据库的价格,
如果购物车里的价格大于我数据库里的价格, 把价格改为我数据库里的实际价格,并且提示客户已经比你刚加入购物车时降价50元.
三、Quartz的下载
官方网站:http://quartz-scheduler.org/
四、Quartz的应用
1. 添加依赖 pom.xml
一般使用Quartz是和spring框架整合使用的,所以加入以下依赖:
<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>
2. 创建一个Job类 (比如我们在订单工程中应用)
package com.taotao.order.quartz;
import org.junit.Test;
public class JobQuartz {
@Test
public void execute(){
System.out.println("job定时任务:。。。。。。");
}
}
3. 创建 applicationContext-quartz.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.