Spring定时器,主要有两种实现方式,包括Java Timer定时和Quartz定时器!

1.Java Timer定时

首先继承java.util.TimerTask类实现run方法

package com.land;

import java.util.Date;

import java.util.TimerTask;

public class TimerTest extends  TimerTask  {

@Override

public void run() {

// TODO Auto-generated method stub

System.out.println("TimerTest"+(new Date()).toString());

}

}

Spring配置

2.Quartz定时器

首先继承QuartzJobBean类实现executeInternal方法

public class SchedulerTest   extends QuartzJobBean{

@Override

protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {

// TODO Auto-generated method stub

//System.out.println("-----------");

System.out.println("1111111"+(new Date()).toString());

}

}

-------------------------------------------

public class SchedulerTest2   extends QuartzJobBean{

@Override

protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {

// TODO Auto-generated method stub

//System.out.println("-----------");

System.out.println("22222222"+(new Date()).toString());

}

}

Spring配置

com.land.SchedulerTest

com.land.SchedulerTest2

0/10 * * * * ?

1000

20000

3.其他说明

Java Timer定时有一种配置启动的方org.springframework.scheduling.timer.ScheduledTimerTask,

Quartz定时器有两种配置启动的方式:org.springframework.scheduling.quartz.SimpleTriggerBean,org.springframework.scheduling.quartz.CronTriggerBean。

org.springframework.scheduling.quartz.CronTriggerBean

Linux系统的计划任务通常有cron来承担。从左到右

字段   允许值   允许的特殊字符

秒    0-59    , - * /

分    0-59    , - * /

小时    0-23    , - * /

日期    1-31    , - * ? / L W C

月份    1-12 或者 JAN-DEC    , - * /

星期    1-7 或者 SUN-SAT    , - * ? / L C #

年(可选)    留空, 1970-2099    , - * /

表达式   意义

"0 0 12 * * ?"    每天中午12点触发

"0 15 10 ? * *"    每天上午10:15触发

"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触发

特殊字符   意义

*    表示所有值;

?    表示未说明的值,即不关心它为何值;

-    表示一个指定的范围;

,    表示附加一个可能值;

/    符号前表示开始时间,符号后表示每次递增的值;

L("last")    ("last") "L" 用在day-of-month字段意思是 "这个月最后一天";用在 day-of-week字段, 它简单意思是 "7" or "SAT"。如果在day-of-week字段里和数字联合使用,它的意思就是 "这个月的最后一个星期几" – 例如: "6L" means "这个月的最后一个星期五". 当我们用“L”时,不指明一个列表值或者范围是很重要的,不然的话,我们会得到一些意想不到的结果。

W("weekday")    只能用在day-of-month字段。用来描叙最接近指定天的工作日(周一到周五)。例如:在day-of-month字段用“15W”指“最接近这个月第15天的工作日”,即如果这个月第15天是周六,那么触发器将会在这个月第14天即周五触发;如果这个月第15天是周日,那么触发器将会在这个月第16 天即周一触发;如果这个月第15天是周二,那么就在触发器这天触发。注意一点:这个用法只会在当前月计算值,不会越过当前月。“W”字符仅能在day- of-month指明一天,不能是一个范围或列表。也可以用“LW”来指定这个月的最后一个工作日。

#    只能用在day-of-week字段。用来指定这个月的第几个周几。例:在day-of-week字段用"6#3"指这个月第3个周五(6指周五,3指第3个)。如果指定的日期不存在,触发器就不会触发。

C    指和calendar联系后计算过的值。例:在day-of-month 字段用“5C”指在这个月第5天或之后包括calendar的第一天;在day-of-week字段用“1C”指在这周日或之后包括calendar的第一天。

在MONTH和Day Of Week字段里对字母大小写不敏感

java timmer模式配置_使用java配置定时任务的几种配置方式及示例相关推荐

  1. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  2. java如何实现定时任务_Java定时任务的三种实现方式

    前言 现代的应用程序早已不是以前的那些由简单的增删改查拼凑而成的程序了,高复杂性早已是标配,而任务的定时调度与执行也是对程序的基本要求了. 很多业务需求的实现都离不开定时任务,例如,每月一号,移动将清 ...

  3. 后端技术:Java定时任务的五种创建方式

    Quartz表达式生成地址:http://cron.qqe2.com/ 支持生成定时任务表达式和反解析,使用Quartz表达式的定时任务如下 xxl-job springboot 的 @Schedul ...

  4. java c3p0 配置文件_【c3p0】 C3P0的三种配置方式以及基本配置项详解

    数据库连接池C3P0框架是个非常优异的开源jar,高性能的管理着数据源,这里只讨论程序本身负责数据源,不讨论容器管理. ---------------------------------------- ...

  5. java获取jndi密码_用JAVA代码获取Weblogic配置的JNDI 数据源连接

    第一步:生成与JDK版本对应的weblogicjar,利用cmd 进入到weblogic_home 路径下进入到server/lib目录,然后运行  JDK  1.6 命令 "java -j ...

  6. java 连接池配置_【Java】java数据库连接池配置的几种方法

    今天遇到了关于数据源连接池配置的问题,发现有很多种方式可以配置,现总结如下,希望对大家有所帮助:(已Mysql数据库为例) 一,Tomcat配置数据源: 方式一:在WebRoot下面建文件夹META- ...

  7. java 策略模式会员_七:策略模式(不同等级会员打折算法)

    定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换.策略模式让算法独立于使用它的客户而独立变化: 下面给出策略模式的类图,引自百度百科. 策略模式在LZ第一次接触到的时 ...

  8. java解决策略膨胀_折腾Java设计模式之策略模式

    简介 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改.这种类型的设计模式属于行为型模式.简单理解就是一组算法,可以互换,再简单点策略就是封装算法. 意图 定义一 ...

  9. java execute 执行成功_【JAVA】设计模式之命令模式(Command模式)的使用分析

    命令模式属于23种设计模式中行为模式中的一个,它也是一种简单实用非常普遍的设计模式. 首先看下GOF对命令模式的定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录 ...

最新文章

  1. 初学python还是swift-Swift 势必取代 Python?
  2. App.Config详解
  3. 大牛深入浅出讲解C语言#define宏定义应用及使用方法
  4. MapReduce 应用:TF-IDF 分布式实现
  5. php怎么做签到系统,PHP如何实现签到功能
  6. baidumap vue 判断范围_懂一点前端—Vue快速入门
  7. Shell编程入门(第二版)(中)
  8. mysql导入_导出命令_MySQL导入导出命令
  9. OpenVINO 2019 R2.0 Custom Layer Implementation for linux(2)
  10. r5驱动 索尼exmor_SONY的驱动安装顺序(还不知道的赶快进来看看!!)
  11. 华三交换机ping不通用户但用户_h3c交换机如何一直 ping【已解决】
  12. 内部收益率(二分法)
  13. 自学量化投资之旅-学习第一个策略EMV指标
  14. 机器学习从入门到创业手记-2.1.1 线性回归与房价还涨么
  15. 沃尔沃集团与戴姆勒卡车将成立燃料电池合资公司;科济生物完成超1.8亿美元C轮融资 | 美通企业日报...
  16. RHEL-7.4-Server系统安装
  17. excel组合汇总_Excel汇总20140224
  18. 泽塔云:用超融合撑起软件定义数据中心的梦想
  19. 服务器响应551,为什么输出fi上的ftp响应551错误
  20. 超级玛丽马里奥版下载_将超级马里奥赋予生命

热门文章

  1. idea 改变输出语句的颜色 工具类
  2. 华为服务器备件系统,华为企业业务中国区经销商备件系列宣传(共8期)
  3. python实现IIR高通低通,带通,带阻滤波器详解及应用案例
  4. [专栏精选]UnityWebRequest详解
  5. 容器安全 - 利用特权模式运行的容器,实现容器逃逸和入侵
  6. AWS Lambda中的Cron表达式解析器
  7. .NET Core 2.1.12 与 2.2.6 发布,修复 URL 重定向欺骗漏洞
  8. TypeScript 3.4 发布
  9. SQL 使用总结五(杂记)
  10. python字符串转64位数字_python-将String转换为64位整数映射字符以自定义两位值映射...