博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring框架结合Quartz实现任务调度实例
阅读量:4070 次
发布时间:2019-05-25

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

1、编写调用类

QuartzJob.java
package com.kedacom.quartz;    public class QuartzJob  {    public void run()    {      System.out.println("Quartz 的任务调度!!! ");    }  }

2、设置 Spring 的配置文件applicationContext-schedule.xml

run
0/5 /* * * * ?
其中:定义任务触发时间的 cronExpression 是整个任务调度的核心部分,下面进行说明。

2.1、cronExpression包括以下7个字段:

  • 小时
  • 月内日期
  • 周内日期
  • 年(可选字段)

2.2、引入特殊字符,如下所示:

  • 反斜线( / )字符表示增量值。例如,在秒字段中" 5/15 "代表从第 5 秒开始,每 15 秒一次。
  • 问号( ? )字符和字母 L 字符只有在月内日期和周内日期字段中可用。问号表示这个字段不包含具体值。所以,如果指定月内日期,可以在周内日期字段中插入" ? ",表示周内日期值无关紧要。字母 L 字符是 last 的缩写。放在月内日期字段中,表示安排在当月最后一天执行。在周内日期字段中,如果" L "单独存在,就等于" 7 ",否则代表当月内周内日期的最后一个实例。所以" 0L "表示安排在当月的最后一个星期日执行。
    *在月内日期字段中的字母( W )字符把执行安排在最靠近指定值的工作日。把" 1W "放在月内日期字段中,表示把执行安排在当月的第一个工作日内。
  • 井号( # )字符为给定月份指定具体的工作日实例。把" MON#2 "放在周内日期字段中,表示把任务安排在当月的第二个星期一。
  • 星号( * )字符是通配字符,表示该字段可以接受任何可能的值

2.3、相关字段允许的值和特殊字符,如下表所示

字段 允许值 允许的特殊字符
0-59 , - * /
0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可选) 留空 , 1970-2099 , , - * /

2.4、表达式范例及说明

表达式 说明
0 0 12 * * ? 每天中午 12 点触发
0 15 10 ? * * 每天上午 10:15 触发
0 15 10 * * ? 每天上午 10:15 触发
0 15 10 * * ? 2005 2005 年的每天上午 10:15 触发
0 * 14 * * ? 在每天下午 2 点到下午 2:59 期间的每 1 分钟触发
0 0/5 14 * * ? 在每天下午 2 点到下午 2:55 期间的每 5 分钟触发
0 0/5 14,18 * * ? 在每天下午 2 点到 2:55 期间和下午 6 点到 6:55 期间的每 5 分钟触发
0 0-5 14 * * ? 在每天下午 2 点到下午 2:05 期间的每 1 分钟触发
0 10,44 14 ? 3 WED 每年三月的星期三的下午 2:10 和 2:44 触发
0 15 10 ? * MON-FRI 周一至周五的上午 10:15 触发
0 15 10 15 * ? 每月 15 日上午 10:15 触发
0 15 10 L * ? 每月最后一日的上午 10:15 触发
0 15 10 ? * 6L 每月的最后一个星期五上午 10:15 触发
0 15 10 ? * 6L 2002-2005 2002 年至 2005 年的每月的最后一个星期五上午 10:15 触发
0 15 10 ? * 6#3 每月的第三个星期五上午 10:15 触发

3、编写任务调度测试类

QuartzTest.java
package com.kedacom.quartz;    import org.springframework.context.ApplicationContext;  import org.springframework.context.support.ClassPathXmlApplicationContext;  public class QuartzTest  {    public  static  void main(String [] args)    {      System.out.println("Test start ...... ");      ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-schedule.xml");      // 如果配置文件中将 startQuertz bean 的 lazy-init 设置为 false 则不用实例化      context.getBean("schedulerFactory ");      System.out.print("Test end ...... ");    }  }

4、设置web.xml使启动时加载Spring配置文件applicationContext-schedule.xml

contextConfigLocation
classpath*:applicationContext-schedule.xml

5、启动web应用系统,即可在控制台中看到每5秒打出"Quartz的任务调度!!!"

转载地址:http://dqmji.baihongyu.com/

你可能感兴趣的文章
springcloud 的eureka服务注册demo
查看>>
eureka-client.properties文件配置
查看>>
MODULE_DEVICE_TABLE的理解
查看>>
platform_device与platform_driver
查看>>
platform_driver平台驱动注册和注销过程(下)
查看>>
.net强制退出主窗口的方法——Application.Exit()方法和Environment.Exit(0)方法
查看>>
c# 如何调用win8自带的屏幕键盘(非osk.exe)
查看>>
build/envsetup.sh 简介
查看>>
C++后继有人——D语言
查看>>
Android framework中修改或者添加资源无变化或编译不通过问题详解
查看>>
linux怎么切换到root里面?
查看>>
linux串口操作及设置详解
查看>>
安装alien,DEB与RPM互换
查看>>
linux系统下怎么安装.deb文件?
查看>>
编译Android4.0源码时常见错误及解决办法
查看>>
Android 源码编译make的错误处理
查看>>
linux环境下C语言中sleep的问题
查看>>
ubuntu 12.04 安装 GMA3650驱动
查看>>
新版本的linux如何生成xorg.conf
查看>>
xorg.conf的编写
查看>>