一、Quartz介绍

在企业应用中,我们经常会碰到时间任务调度的需求,比如每天凌晨生成前天报表,每小时生成一次汇总数据等等。Quartz是出了名的任务调度框架,它可以与J2SE和J2EE应用程序相结合,功能灰常强大,轻轻松松就能与Spring集成,使用方便。
二、Quartz中的概念
主要有三个核心概念:调度器、任务和触发器。三者关系简单来说就是,调度器负责调度各个任务,到了某个时刻或者过了一定时间,触发器触动了,特定任务便启动执行。概念相对应的类和接口有:
1)JobDetail:望文生义就是描述任务的相关情况;
2)Trigger:描述出发Job执行的时间触发规则。有SimpleTrigger和CronTrigger两个子类代表两种方式,一种是每隔多少分钟小时执行,则用SimpleTrigger;另一种是日历相关的重复时间间隔,如每天凌晨,每周星期一运行的话,通过Cron表达式便可定义出复杂的调度方案。
3)Scheduler:代表一个Quartz的独立运行容器,Trigger和JobDetail要注册到Scheduler中才会生效,也就是让调度器知道有哪些触发器和任务,才能进行按规则进行调度任务。
三、Spring中使用Quartz
1,所需jar包:quartz.jar,spring.jar,commons-collections-3.2.jar;
2,添加业务逻辑类(简单示例):
public class UserHeartBeat {
public void Show(){
Calendar cal=Calendar.getInstance();
long date=cal.getTime().getTime();
SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss:SSS”);
String result=sdf.format(date);
System.out.println(result);
System.out.println(“Spring Quartz Test”);
}
public static void main(String args[]){
new UserHeartBeat().Show();
}
}
这个类的作用就是用来定义每隔多久要做的事情
3,配置文件(applicationContext.xml) 用来配置定时任务
其中间隔时间的配置说明见 定时任务配置的间间隔配置说明
4.在主配置文件web.xml中注册定时任务的配置文件(applicationContext.xml)
5.定义一个测试类来调用定时任务
public static void main(String[] args) {
System.out.println(“Spring Quartz test start…”);
ApplicationContext context=new ClassPathXmlApplicationContext(“ApplicationContext.xml”);
// 如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
System.out.println(“Spring Quartz test end…”);
}
运行效果图如下:
案例下载地址 实用的spring+quartz实现定时任务-源码世界
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/112751.html