SpringBoot - @Schedule 上次任务未结束,下次任务到时间是否会启动验证

任务案例 

@Scheduled(cron = "0/3 * * * * ? ")
public void run() {int sleep = new Random().nextInt(10);log.info("say sleep: {}s", sleep);try {Thread.sleep(sleep * 1000);} catch (InterruptedException e) {e.printStackTrace();}
}

任务设定的是,从 0 秒开始,每 3 秒钟执行一次。任务耗时通过线程 sleep 来模拟,时长则是一个 0-10 的随机数。

打印效果

2019-03-01 14:25:24  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 9s
2019-03-01 14:25:36  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 7s
2019-03-01 14:25:45  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 9s
2019-03-01 14:25:57  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 4s
2019-03-01 14:26:03  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 2s
2019-03-01 14:26:06  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 8s
2019-03-01 14:26:15  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 0s
2019-03-01 14:26:18  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 2s
2019-03-01 14:26:21  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 9s
2019-03-01 14:26:33  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 1s
2019-03-01 14:26:36  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 1s
2019-03-01 14:26:39  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 0s
2019-03-01 14:26:42  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 3s
2019-03-01 14:26:48  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 4s
2019-03-01 14:26:54  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 4s
2019-03-01 14:27:00  INFO 8008 --- [   scheduling-1] c.yclouds.service.demo.TestJob  : say sleep: 3s

结果分析 

  • line1和line2对比:24秒执行的任务,耗时9秒。line2并没有在27秒执行打印,说明上次任务未结束时,下次任务不会启动
  • line1和line2对比:理论上line1会在33秒时结束,此时刚好下次任务的触发点,结果可以看出,line2并不是在33秒执行的打印,而是下一个周期36秒打印的。也就是说,如果上一个任务结束时,刚好是下次任务的触发点,下次任务不会立马执行,而是会顺延一个周期
  • 结论:上次未结束,下次任务不会启动。它会自动顺延到任务结束后的,下一个周期触发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/219115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阶段十-java新特性

JDK9新特性 1.模块化系统 jar包结构的变化 jar -》model -》package -》class 通过不同的模块进行开发 每个模块都有自己的模块配置文件module-info.java 2.JShell JDK9自带的命令行开发,在进行简单的代码调试时可以直接编译使用 可以定义变量,方法&…

大数据与人工智能——神经网络是如何工作的?

大数据与人工智能——神经网络是如何工作的? 我们习惯于去了解所使用工具、中间件的底层原理,本文则旨在帮助大家了解AI模型的底层机制,让大家在学习或应用各种大模型时更加得心应手,更加适合没有AI基础的小伙伴们。 一、GPT与神…

Java实现机考程序界面

机考界面如下(单选题),上方是题目状态,下方是题目,1/5/1是已做题目数量、总共题目数量和答对题目数量。 再看一下多选题的界面。 判断题的界面。 回答正确时的反馈,会给出用时。 回答错误时的反馈&#xff…

SQL命令---带关系运算符的条件查询

介绍 使用sql语句按条件查询 命令 select 字段1,字段2 from 表名 where 条件表达式;关系运算符&#xff1a; 关系运算符说明等于<>不等于!不等于<小于<小于等于>大于>大于等于 例子 查询a表中id等于4的数据&#xff1a; select id,name from a where …

社会不教,精英不讲,坎儿还得自己过(揭秘人才成长规律)

推荐大家去看看天涯社区的精华帖子&#xff1a;《社会不教&#xff0c;精英不讲&#xff0c;坎儿还得自己过&#xff08;揭秘人才成长规律&#xff09;》 原出处天涯精华帖&#xff1a;《社会不教&#xff0c;精英不讲&#xff0c;坎儿还得自己过&#xff08;揭秘人才成长规律&…

【教3妹学编程-算法题】消除相邻近似相等字符

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 3妹&#xff1a;好冷啊&#xff0c; 冻得瑟瑟发抖啦 2…

制造业对于IT软硬件监控和摄像头故障监控的需求

制造业对于生产线的自动化和智能化需求较高&#xff0c;IT监控运维管理软件在制造业的应用也日益普及。监控易为制造业提供了一系列定制化的解决方案&#xff0c;助力企业实现生产线的智能化和高效化。 随着制造业的数字化转型和智能化升级&#xff0c;IT运维管理软件的需求也在…

解决mfc140.dll丢失的方法有哪些?分享3个实测有效的方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中最常见的就是“找不到指定的模块”或“无法加载某某.dll文件”。这些错误通常会导致程序无法正常运行&#xff0c;给用户带来很大的困扰。而mfc140.dll文件丢失就是其中之一。本文将介绍3个解决mfc14…

深入理解Java虚拟机---类加载机制

类加载机制 什么是类加载机制类加载的时机类加载的过程加载验证文件格式验证元数据验证字节码验证符号引用验证 准备解析初始化 类加载器双亲委派模型 什么是类加载机制 虚拟机把描述类的数据从 Class 文件加载到内存&#xff0c;并对数据进行校验、转换解析和初始化&#xff…

《PySpark大数据分析实战》-06.安装环境准备

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…

Kafka集成springboot

安装kafka&#xff0c;直接到官网下载bin文件&#xff0c;本文使用windows进行使用kafka。 下载之后&#xff0c;第一步&#xff0c;启动zookeeper&#xff1a; zookeeper-server-start.bat ..\..\config\zookeeper.properties 第二步&#xff0c;启动kafka&#xff1a; kafka…

node.js基础

node.js基础 &#x1f353;什么是node.js&#x1f353;node.js模块&#x1f352;&#x1f352; 内置模块&#x1f345;&#x1f345;&#x1f345;fs模块&#x1f345;&#x1f345;&#x1f345;path模块&#x1f345;&#x1f345;&#x1f345;http模块 &#x1f352;&#…

1017 A除以B

本题要求计算 A/B&#xff0c;其中 A 是不超过 1000 位的正整数&#xff0c;B 是 1 位正整数。你需要输出商数 Q 和余数 R&#xff0c;使得 ABQR 成立。 输入格式&#xff1a; 输入在一行中依次给出 A 和 B&#xff0c;中间以 1 空格分隔。 输出格式&#xff1a; 在一行中依…

Matlab之让特别大的数字显示全,不用科学计数法的形式

一、常见大数显示形式 matlab会自动将特别大的数字&#xff0c;采用科学计数法显示。 bigNum 1234567890000000000000 二、显示大数所有位数 这里采用的是将数字转为字符&#xff0c;并用定点表示 bigNum 1234567890000000000000; bigNumstr num2str(bigNum, %.0f); % 使用…

如果我忽然嗝屁了,家人怎么继承我的财产

前言 笔者很喜欢的电影《寻梦环游记》有这么一句经典台词&#xff1a;“真正的死亡是世界上没有一个人记得你”。 然而&#xff0c;现实中我们所说的“死亡”&#xff0c;其实就是 他再不能与这个世界、与自己在乎的人有新的互动了。 本文&#xff0c;笔者想写一写 关于死亡的…

Java的String类常用方法 |StringBuilder和StringBuffer

文章目录 String类常用方法字符串查找转化字符串替换字符串拆分字符串截取其他操作方法 字符串的不可变性StringBuilder和StringBufferStringBuilder的介绍面试题 String类常用方法 字符串查找 方法功能char charAt(int index)返回index位置上字符&#xff0c;如果index为负数…

Python polars库:高性能数据操作的利器

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在数据处理和分析领域&#xff0c;Python一直以来都是一种热门的编程语言。近年来&#xff0c;随着数据量的增加和对性能的需求&#xff0c;一些新的数据处理库也逐渐崭露头角。其中&#xff0c;polars库作为一个…

Python面向对象之跨类调用(Python系列17)

在面向对象的思想中&#xff0c;常见的一个问题是&#xff1a; 老张开车去东北 针对于这句话&#xff0c;如何使用面向对象的思想去解决 # 跨类调用 class Person:def __init__(self, name"", age0, sex"男"):self.name nameself.age ageself.sex se…

c#编码技巧(十八):新语法糖record深入分析

c#编码技巧(十四)&#xff1a;新语法糖record深入分析 从 C# 9 开始新增了一个关键字record&#xff0c;用于封装数据。 record实质是微软提供的一个语法糖&#xff0c;因很多开源项目都用到了这个关键字&#xff0c;说明这个语法糖比较实用。 那么这个record类型和普通class类…

Playwright:下一代自动化测试工具

随着Web应用的普及&#xff0c;自动化测试变得越来越重要。在众多的自动化测试工具中&#xff0c;Playwright 是一个值得关注的新秀。本文将详细介绍 Playwright 的特点、优势以及如何使用它进行自动化测试。 一、Playwright 简介 Playwright 是一个用于自动化浏览器操作的 N…