博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring框架使用Quartz执行定时任务实例详解
阅读量:6938 次
发布时间:2019-06-27

本文共 4185 字,大约阅读时间需要 13 分钟。

版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/80382324

Quartz简介

  1.Quartz,是一个完全由java编写的开源作业调度框架。它包含了调度器监听、作业和触发器监听,而我们在项目中最常用到的就是它可以作为一个定时器,可以随时配置监听、触发任务进行作业。

  2.在Spring的框架里,Quartz已经被很好地集成,我们只需要在xml文件里面配一下定时时间就可以自动执行任务了。
  3.本博客主要介绍的是一个quartz项目的完整的搭建、配置以及成功运行的过程,里面包含了多个定时器的配置以及多个数据库的配置方法,非常适合新手去接触和掌握quartz的使用而且还附有完整的quartz定时器项目实例下载,项目下载地址:

项目实例详解

  1.首先我们看一下整个项目的结构,最基本的spring架构:

 这里写图片描述
  2.接下来我们将逐个步骤去搭建、配置以及运行这个项目,每个步骤在项目里面我都配有详细的说明,
   (1)首先,我们看一下web.xml配置: 

org.springframework.web.util.Log4jConfigListener
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath*:applicationContext*.xml
log4jConfigLocation
classpath:log4j.properties
index.jsp

   (2)其次,我们看一下加载的spring配置文件applicationContext.xml配置: 

0/5 * * * * ?
0 0 0/1 * * ?

   (3)然后,就是数据库的配置文件jdbc.properties,这个文件可以将所有的数据库连接属性都写在里面,当然你也可以直接在applicationContext.xml里面直接配置数据库信息,一个项目可以配置多个数据源,相信大家都是没问题的:

##oracle数据库配置#jdbc.type=oracle#jdbc.driver=oracle.jdbc.driver.OracleDriver#jdbc.url=jdbc:oracle:thin:@localhost:1521:testora#jdbc.username=test#jdbc.password=test##pool settings#jdbc.pool.init=10#jdbc.pool.minIdle=30#jdbc.pool.maxActive=50##jdbc.testSql=SELECT 'x'#jdbc.testSql=SELECT 'x' FROM DUAL#mysql数据库配置jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/jftest?useSSL=false&useUnicode=true&characterEncoding=UTF-8jdbc.username=rootjdbc.password=1234

   (4)接下来我们再讲一下项目里面的各个文件的作用,这里直接用一张图给大家进行展示说明:

   这里写图片描述
   (5)我们看一下在配置文件里quartz指定的定时执行的方法:

/** *  * @author hqc * @version 2018年05月20日 * */public class DataStaticService {
protected static Logger logger = Logger.getLogger(DataStaticService.class); @Autowired DataPostgresqlDao dataPostgresqlDao; @Autowired DataOracleDao dataOracleDao; /** * 测试定时方法1 */ public void testMethod1(){ Calendar c = Calendar.getInstance(); String today = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(c.getTime()); System.out.println("定时任务程序运行时间:"+today); System.out.println("定时查询oracle库t_user表的数据数量:"+dataOracleDao.queryTest().size()); } /** * 测试定时方法2 */ public void testMethod2(){ Calendar c = Calendar.getInstance(); String today = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(c.getTime()); //昨天的当前时间// c.add(Calendar.DATE, -1);// String yesterday = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(c.getTime()); System.out.println("定时任务程序运行时间:"+today); System.out.println("定时查询postgresql库t_user表的数据数量:"+dataPostgresqlDao.queryTest().size()); }}

   (6)最后,我们看一下定时任务执行的效果,这里我设置的是每5秒执行一次:

   这里写图片描述

总结

  1.好了,以上就是spring框架使用Quartz执行定时任务完整实例详解,很适合新手去熟悉和掌握quartz;

  2.实践是认识真理性的唯一标准,通过这一个简单的项目实践,有兴趣的小伙伴们能继续去深入研究,从而形成一套适合自己的定时器项目,在项目中运用的时候就会事半功倍;

你可能感兴趣的文章
Huffman Codes
查看>>
求一棵二叉树的镜像
查看>>
Principal Component Analysis(PCA) algorithm summary
查看>>
【安装Ubuntu 遇到问题】 the system is running in low-graphics mode 最新办法解决
查看>>
达拉草201771010105《面向对象程序设计(java)》第十八周学习总结
查看>>
Mysql中文输入出现1366错误的解决办法
查看>>
Ant调用Java中文显示乱码
查看>>
database工具
查看>>
[转] JavaScript 运行机制详解:再谈Event Loop
查看>>
我的转正申请
查看>>
【leetcode】509. Fibonacci Number
查看>>
day10--进程
查看>>
结构训练
查看>>
查询数据库保存成CSV格式
查看>>
enumerate
查看>>
PHP三元运算符 isset的理解
查看>>
dede织梦:文章内容页调用
查看>>
开发中常用的 25 个JavaScript 单行代码
查看>>
phh7 安装redis扩展
查看>>
也许你一直「坚持」不下去,是缺少这个前提
查看>>