首先在启动类中加入 @EnableScheduling,不加入没效果

 package com.example.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;@SpringBootApplication
@EnableScheduling
public class Demo1Application {public static void main(String[] args) {SpringApplication.run(Demo1Application.class, args);}
}

接着创建一个定时任务类ScheduledTasks.java

package com.example.demo;import java.util.Date;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;@Component
public class ScheduledTasks {private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class);/*** fixedDelay:在上一次执行完之后等xxx毫秒(xxx就是fixedDelay = 5000中的5000)再执行,循环下去,上一次执行多久都没关系 ,反正上一次执行完后xxx毫秒我才执行* @throws InterruptedException */@Scheduled(fixedDelay = 5000)// 5000毫秒执行一次public void fixedDelay() throws InterruptedException {   log.info("............."+new Date());Thread.sleep(8000);}/*** fixedDelay:在上一次执行完之后等xxx毫秒(xxx就是fixedDelay = 5000中的5000)再执行,循环下去* initialDelay:第一次运行次要等xxx毫秒才能执行,比如:假设原来是14:00:00 开始执行这个,但是设置了initialDelay=8000,那么要在8000毫秒后才能执行这个方法,也就是14:00:08才真正执行*/@Scheduled(fixedDelay = 5000, initialDelay=8000)// 5000毫秒执行一次,第一次执行延时8000毫秒public void fixedDelayAndInitialDelay() {//log.info("............."+new Date());}/*** fixedRate:这个有点蛋疼...,举个例子:比如:假设有5个执行时间点 间隔是5000毫秒:分别是:* T1:14:00:00* T2:14:00:05* T3:14:00:10* T4:14:00:15* T5:14:00:20* 如果T1执行时间花了4秒,也就是到了14:00:04,那么你会看到14:00:05分就开始执行了T2,很正常,此时T1结束时间和T2开始时间只差1000毫秒,没毛病* 如果T1执行时间花了8秒,怎么办?这时T1执行完的时间是14:00:08,已经覆盖了T2的时间,T2在14:00:05到14:00:08是等等状态。现在是14:00:08,看起来接着是T3执行,* 但实际不是,而是立马执行T2,立马执行T2,立马执行T2(T2说:我不管,T1搞我超时了,我无论也是执行),这时你会发现T2的执行时间(也就是第2次执行时间 )是:14:00:08,真的是立马。。。* 如此类推,只要时执行时间被覆盖了的,到它了就立马执行* @throws InterruptedException */@Scheduled(fixedRate = 5000)public void fixedRate() throws InterruptedException {//log.info(".............s"+new Date());//Thread.sleep(8000);//log.info(".............e"+new Date());}
}

java鬼混笔记:springboot 5、springboot的Scheduled定时器:fixedDelay和fixedRate区别相关推荐

  1. (JAVA学习笔记) Scanner类中next方法和nextline方法的区别

    next(): 1.一定要读取到有效字符后才可以结束输入. 2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉. 3.只有输入有效字符后才将其后面输入的空白作为分隔符或结束符. *4. ...

  2. @Scheduled中fixedDelay、fixedRate、initialDelay 和cron表达式的解析及区别

    一. 在线Cron表达式生成器 http://cron.qqe2.com/ 二.介绍 cronExpression定义时间规则,Cron表达式由6或7个空格分隔的时间字段组成:秒 分钟 小时 日期 月 ...

  3. @Scheduled中fixedDelay、fixedRate、initialDelay

    @Scheduled注解可以控制方法定时执行,其中有三个参数可选择: 1.fixedDelay控制方法执行的间隔时间,是以上一次方法执行完开始算起,如上一次方法执行阻塞住了,那么直到上一次执行完,并间 ...

  4. 【Java 系列笔记】语法基础 + Spring + Spring MVC + SpringBoot + 数据结构

    Java 强化笔记目录 Java 语言基础 Java 架构师体系课程 一些课程 前端笔记:前端学习笔记 Java 语言基础 回头补基础(此基础非小白)系列,学校教的其实真的就是一些皮毛而已,怕是连门都 ...

  5. Java微服务篇1——SpringBoot

    Java微服务篇1--SpringBoot 1.什么是springboot 1.1.Spring出现的问题 Spring是Java企业版(Java Enterprise Edition,JEE,也称J ...

  6. CAS学习笔记五:SpringBoot自动/手动配置方式集成CAS单点登出

    本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式实现CAS客户端登出及单点登出. 本文基于<CAS学习笔记三:SpringBoot自动/手动配置方式集成C ...

  7. Java运行非Web的Springboot项目(测试类或启动主类两种方法)

    Java运行非Web的Springboot项目(测试类或启动主类两种方法) 前言 一.创建打开一个Springboot项目 二.运行项目 1.Test测试类运行 2.启动主类运行 三.持续运行不停止( ...

  8. Java实例开发教程:SpringBoot开发案例

    最近在做邮件发送的服务,正常来说SpringBoot整合mail还是很方便的,然而来了新的需求:A请求使用邮箱C发送,B请求使用邮箱D发送,也就是说我们需要配置两套发送服务. 单实例 首先我们来看下单 ...

  9. 基于SpringBoot监控Java项目,暴漏springboot内置端点

    基于SpringBoot监控Java项目的指标 文章目录 基于SpringBoot监控Java项目的指标 监控java项目有哪些方案 springboot内置端口 prometheus 如何使用 sp ...

最新文章

  1. 模型大十倍,性能提升几倍?谷歌研究员进行了一番研究
  2. 官宣!清华大学要搬迁!
  3. 四种利用C#播放声音的方法
  4. 云计算与分布式计算,网格结算,对等计算,并行计算..的关系
  5. Jdk8一行代码读取文件
  6. 13 SD配置-企业结构-分配-给销售办公室分配销售组
  7. oracle数据库文件dbf复制#ocp试验#
  8. Ayoa:让思维导图更简单,在线使用 无需安装客户端
  9. pythonpdf使用教程_Python基础学习教程:Python玩转PDF各种骚操作大全
  10. The engine “node“ is incompatible with this module
  11. 美国节日(求某天是星期几)
  12. 解决微信公共号开发出现 redirect_uri域名与后台配置不一致,错误码10003 错误
  13. 海底捞激励员工的方法符合哪些激励理论的建议
  14. 1236. Find All Numbers Disappeared in an Array
  15. 基于java的邮编区号管理系统
  16. (02) Apache Felix 入门 - 02
  17. 基于神经网络识别抑郁症附matlab代码
  18. 每日一练20210814
  19. 黑苹果安装使用 macos10.14 on vmware15 or virtualbox
  20. Js放在head和body中的区别

热门文章

  1. C语言入门最基础教学(编译器下载)
  2. 同步压缩变变时频分析和盲源分离
  3. 常见的开发模式和不常见的开发模式
  4. 数字分解的套路与陷阱
  5. 斯皮尔曼(spearman)相关系数python代码实现
  6. MIPI RFFE协议使用不完全指南(附上代码详解和参考资料)第一部分
  7. 实验一-Hadoop的安装与使用
  8. 2021年,微博打了一手好牌?
  9. pscp使用详解 Win与Linux文件互传工具
  10. 大数据-大数据学习过程