Scheduling Tasks
官方文档
https://spring.io/guides/gs/scheduling-tasks/
官方文档详细介绍了@Scheduled中fixedRate,fixedDelay,cron的用法
fixedRate代表调用频率,单位为ms,如果调用频率设为5000ms,那么当你第一次调用占用2秒时等待3秒会第二次调用,当你第二次调用占用5秒时结束会立马第三次调用。
fixedDelay代表间隔时间,单位为ms,即每次调用完成时间和下次调用都相隔5000ms。
cron表达式,看官网文档
fixedDelay验证
情况一,程序执行时间小于延迟时间
设置延迟5秒时,执行时间为3秒
@Scheduled(fixedDelay=5000)
public void execute() throws InterruptedException {
System.out.println("调用时间"+CommonTool.getNowDateStr());
Thread.sleep(3000);
}
发现两次开始调用时间为8秒刚好为执行时间+等待时间
情况二,程序执行时间大于延迟时间
设置延迟5秒,并且方法调用时间为6秒时
@Scheduled(fixedDelay=5000)
public void execute() throws InterruptedException {
System.out.println("调用时间"+CommonTool.getNowDateStr());
Thread.sleep(6000);
}
发现间隙为11,也为执行时间+等待时间
fixedRate验证
情况一,程序执行时间小于延迟时间
设置延迟5秒时,执行时间为3秒
发现间隔时间即为5秒
情况二,程序执行时间大于延迟时间
设置延迟5秒,并且方法调用时间为6秒时
发现调用间隔为6秒,由此可见是单线程运行。
定时任务立即执行
@Scheduled(cron="* * * * * *")
Thread.sleep(24*3600*1000);
多个定时器同一时间触发只有一个执行
schedule是单线程的,阻塞的,所以千万不要长时间睡眠,会影响队列里其他schedule的执行。如果想多个schedule同时进行可以在xm里面配置线程池
Scheduling Tasks的更多相关文章
- 十三、springboot集成定时任务(Scheduling Tasks)
定时任务(Scheduling Tasks) 在springboot创建定时任务比较简单,只需2步: 1.在程序的入口加上@EnableScheduling注解. 2.在定时方法上加@Schedule ...
- 十五、springboot集成定时任务(Scheduling Tasks)(二)之(线程配置)
配置类: /** * 定时任务线程配置 * */ @Configuration public class SchedulerConfig implements SchedulingConfigurer ...
- SpringBoot非官方教程 | 第十八篇: 定时任务(Scheduling Tasks)
转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springboot/2017/07/11/springboot18-scheduling/ 本文出自方志朋的博客 ...
- Hypervisor, computer system, and virtual processor scheduling method
A hypervisor calculates the total number of processor cycles (the number of processor cycles of one ...
- Power aware dynamic scheduling in multiprocessor system employing voltage islands
Minimizing the overall power conservation in a symmetric multiprocessor system disposed in a system- ...
- SpringBoot中使用Scheduling执行定时任务
SpringBoot自带的 Schedule,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多 以下任务都是在单线程下执行的 第一步 创建SpringBoot项目 第二步 外汇 ...
- Android Weekly Notes Issue #234
Android Weekly Issue #234 December 4th, 2016 Android Weekly Issue #234 本期内容包括: ConstraintLayout的使用; ...
- Hadoop HDFS 用户指南
This document is a starting point for users working with Hadoop Distributed File System (HDFS) eithe ...
- Hadoop官方文档翻译——MapReduce Tutorial
MapReduce Tutorial(个人指导) Purpose(目的) Prerequisites(必备条件) Overview(综述) Inputs and Outputs(输入输出) MapRe ...
随机推荐
- Spring Boot版本号说明
Spring Boot的版本选择一般是这样的,如下图: 那版本号后面的英文代表什么含义呢? 具体含义,如下文所示: SNAPSHOT:快照版,表示开发版本,随时可能修改: M1(Mn):M是miles ...
- .Net反射-TypeDescriptor
.Net中提供了两种方式访问类型的元数据:System.Reflection命名空间中提供的反射API和TypeDescriptor类.反射适用于所有类型的常规机制,它为类型返回的信息是不可扩展的,因 ...
- 实现js版StringBuilder
.net中StringBuilder的好处不多说了,下面是js版的StringBuilder var StringBuilder = (function () { function StringBui ...
- Directory traversal
Find the hidden section of the photo galery. 找到相册的隐藏部分. 直接能够目录遍历: 虽然galerie禁止访问,但是密码就在里面----直接爆破或者爬虫 ...
- hadoop 参数大全
方法一.可以通过hadoop官方网址查询, 网址如下: http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ ...
- zabbix-钉钉报警媒介
(1)第三方报警平台(钉钉) 先指定要发送的群,在群里创建机器人 添加机器人 可以参考 “说明文档” 创建测试文档 vim ceshi.sh curl 'https://oapi.dingta ...
- ESA2GJK1DH1K基础篇: 关于各大物联网平台的MQTT通信
前言 这节稍微唠叨点 其实我很长时间都没有出怎么连接现成的物联网平台的教程, 一直写的是教给大家自己搭建服务器,主要原因是因为我感觉连接现有的学不到东西. 现在出这种教程,是因为发现确实很多人喜欢用. ...
- Java——判断回文
package basic; import java.util.Scanner; public class Palindrome{ public static boolean isPalindrome ...
- 每日一问:谈谈 volatile 关键字
这是 wanAndroid 每日一问中的一道题,下面我们来尝试解答一下. 讲讲并发专题 volatile,synchronize,CAS,happens before, lost wake up 为了 ...
- 【C/C++开发】C++11 并发指南二(std::thread 详解)
上一篇博客<C++11 并发指南一(C++11 多线程初探)>中只是提到了 std::thread 的基本用法,并给出了一个最简单的例子,本文将稍微详细地介绍 std::thread 的用 ...