摘要:一介绍在企业应用中,我们经常会碰到时间任务调度的需求,比如每天凌晨生成前天报表,每小时生成一次汇总数据等等。三者关系简单来说就是,调度器负责调度各个任务,到了某个时刻或者过了一定时间,触发器触动了,特定任务便启动执行。
一、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) 用来配置定时任务
Show 10,15,20,25,30,35,40,45,50,55 * * * * ?
其中间隔时间的配置说明见 定时任务配置的间间隔配置说明
4.在主配置文件web.xml中注册定时任务的配置文件(applicationContext.xml)
spring org.springframework.web.context.ContextLoaderServlet 1 spring *.do 5.定义一个测试类来调用定时任务 contextConfigLocation /WEB-INF/classes/ApplicationContext.xml
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..."); }
运行效果
案例下载地址 链接描述
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/74766.html
摘要:本文使用实现对定时任务的增删改查启用停用等功能。并把定时任务持久化到数据库以及支持集群。决定什么时候来执行任务。定义的是任务数据,而真正的执行逻辑是在中。封装定时任务接口添加一个暂停恢复删除修改暂停所有恢复所有 简介 Quartz是一款功能强大的任务调度器,可以实现较为复杂的调度功能,如每月一号执行、每天凌晨执行、每周五执行等等,还支持分布式调度。本文使用Springboot+Myba...
本文来自网络一些博客的整理(包括gong1208的博客 dary1715的博客) 1、简介 这个系列介绍Spring框架实现定时任务的两种方式以及一些高级的用法,包括: 1、使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂,稍后会详细介绍。 2、Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且...
摘要:在定时器接口的方法中我们可以发现一个方法接受接口,而也是一个接口,抽象了触发任务执行的触发器。更常用的一个触发器是,它使用表达式指定何时执行任务。配置定时任务首先看看配置。配置提供了命名空间,让配置定时任务非常简单。 本文参考自Spring官方文档 34. Task Execution and Scheduling。 在程序中常常有定时任务的需求,例如每隔一周生成一次报表、每个月月末清...
阅读 1658·2021-11-24 09:39
阅读 2405·2021-11-18 10:07
阅读 3611·2021-08-31 09:40
阅读 3171·2019-08-30 15:44
阅读 2534·2019-08-30 12:50
阅读 3582·2019-08-26 17:04
阅读 1391·2019-08-26 13:49
阅读 1204·2019-08-23 18:05