SpringBoot@Schedule入门基础
SpringBoot@Schedule入门基础
前言
Schedule是一个任务调度器,SpringBoot中可定时触发执行定时任务。
一、基本概念
在SpringBoot中,使用 @Scheduled
注解就能很方便地创建一个定时任务。
包括有:
- 固定速率执行
- 固定延迟执行
- 初始延迟执行
- Cron 表达式执行
cron表达式
Cron表达式由6~7项组成,中间用空格分开。从左到右依次是:秒、分、时、日、月、周几、年(可省略)。值可以是数字,也可以是以下符号:
*
:所有值都匹配
?
:无所谓,不关心,通常放在“周几”里
,
:或者
/
:增量值
-
:区间下面举几个例子,看了就知道了:
0 * * * * *
:每分钟(当秒为0的时候)
0 0 * * * *
:每小时(当秒和分都为0的时候)
*/10 * * * * *
:每10秒
0 5/15 * * * *
:每小时的5分、20分、35分、50分
0 0 9,13 * * *
:每天的9点和13点
0 0 8-10 * * *
:每天的8点、9点、10点
0 0/30 8-10 * * *
:每天的8点、8点半、9点、9点半、10点
0 0 9-17 * * MON-FRI
:每周一到周五的9点、10点…直到17点(含)
0 0 0 25 12 ?
:每年12约25日圣诞节的0点0分0秒(午夜)
0 30 10 * * ? 2016
:2016年每天的10点半
使用栗子:
/*** fixedRate:固定速率执行。每5秒执行一次。
*/
@Scheduled(fixedRate = 5000)/*** fixedDelay:固定延迟执行。距离上一次调用成功后2秒才执。*/
@Scheduled(fixedDelay = 2000)/*** initialDelay:初始延迟。任务的第一次执行将延迟5秒,然后将以5秒的固定间隔执行。*/
@Scheduled(initialDelay = 5000, fixedRate = 5000)
/*** cron:使用Cron表达式。 每分钟的1,2秒运行*/
@Scheduled(cron = "1-2 * * * * ? ")
二、使用方法
1-启动类或者配置类加上@EnableScheduling
@SpringBootApplication
@EnableScheduling
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);
}
}
2-在加入容器的类中,方法上使用@Scheduled
@Scheduled(fixedDelay = 2000)
public void reportCu(){}
三、@EnableAsync 和 @Async 使定时任务并行执行
Schedule的任务默认是单线程执行
@Component
@EnableAsync
public class AsyncScheduledTasks {private static final Logger log = LoggerFactory.getLogger(AsyncScheduledTasks.class);private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");/*** fixedDelay:固定延迟执行。距离上一次调用成功后2秒才执。*///@Async@Scheduled(fixedDelay = 2000)public void reportCurrentTimeWithFixedDelay() {try {TimeUnit.SECONDS.sleep(3);log.info("Fixed Delay Task : The time is now {}", dateFormat.format(new Date()));} catch (InterruptedException e) {e.printStackTrace();}}
}
参考或相关文章
- https://segmentfault.com/a/1190000020192878
- http://qinghua.github.io/spring-scheduler/
SpringBoot@Schedule入门基础相关推荐
- ***入门基础知识(超全)
***入门基础知识(超全) [sell=2] DOS 常用命令: dir 列文件名 deltree 删除目录树 cls 清屏 cd 改变当前目录 copy 拷贝文件 diskcopy 复制磁盘 de ...
- golang开发工程师-第一步:golang入门基础教学
golang入门基础教学 前言 一.golang的优势何在? 二.goland破解教程 三.goland的使用教程 四.一个简单的go代码 五.变量的声明和赋值 六.数据类型的基本介绍 七.访问权限[ ...
- SpringBoot从入门到精通教程(二十九)- 微信企业支付集成(五分钟集成)
需求背景 SpringBoot用法:微信企业支付集成(五分钟集成) 问题痛点 通过SpringBoot框架,集成服务端微信企业支付接口,做到下载即用(填写好相关微信支付后台相关Key信息),最快五分钟 ...
- SpringBoot从入门到精通-佟刚-专题视频课程
SpringBoot从入门到精通-437人已学习 课程介绍 SpringBoot是企业级开发的整体整合解决方案,特别用于构建微服务应用,旨在用简单的方式让开发人员适应各种开发场景: 课程收益 ...
- SpringBoot | SpringBoot快速入门
文章目录 SpringBoot快速入门(一) 1.什么是SpringBoot 2.什么是微服务架构 3.第一个SpringBoot程序 4.SpringBoot自动装配原理 (1)Pom.xml (2 ...
- SpringBoot系统整理|基础篇|黑马视频
写在前面:很早之前看了狂神的springboot快速入门,后来发现还是有很多开发知识点需要补充学习.乘着假期,将基础篇.运维实用篇.开发实用篇.原理篇一口气学习巩固,再次记录下学习笔记.系列笔记在sp ...
- 视频教程-springboot从入门到精通-Java
springboot从入门到精通 本人具有7年java开发经验,两年java教学经验,擅长java开发相关技术,能够熟掌握并应用目前主流web开发技术,如SSH,SSM等,数据库开发技术oracle, ...
- SpringBoot快速入门(IDEA联网版)
SpringBoot快速入门 目录 SpringBoot快速入门 @[TOC](目录) SpringBoo介绍 1.新建空项目 2.查看maven版本 3.创建新模块 4.springboot联网功能 ...
- 物流快递系统前、后端+Java语言+SpringBoot项目+MVC三层架构+maven+Mysql+Tomcat+可以用于学习SpringBoot项目入门
物流快递系统前.后端+Java语言+SpringBoot项目+MVC三层架构+Mysql+Tomcat+可以用于学习SpringBoot项目入门 可以用于课程设计.毕业设计的知识点入门学习 提示:此资 ...
最新文章
- sql server总结二
- Spark 运行机制
- 【转】程序在内存中的分布
- 2021年Q2母婴行业季度洞察报告
- 长沙中级职称计算机考试时间,湖南土木工程中级职称注册及每年考试时间是什么时候...
- Android-即时通训
- 利器:服务器与CST时间误差8小时的修复方法——timedatectl
- xutils使用流程
- OpenShift 4 - 部署一个基于 Serverless 的 Banking 应用
- python编码转换规范_Python转载[编码规范]
- Doris之资源管理
- Rails secret token bug
- Java 设计模式 代理模式
- mac版ps快捷键大全
- suse linux快捷键,Suse Linux整理大全:快捷键
- python语句分号_你知道分号在各种编程语言中的作用吗?
- php json_encode不要反斜杠,【json+encode让URL内容斜杠+不转义】
- 排序算法lowB三人组--冒泡排序-选择排序-插入排序
- SysTick系统滴答定时器
- 代码审计[java安全编程]
热门文章
- 开机到登陆画面正常,输入密码进入桌面很慢的问题解决
- Sqoop 同步Parquet partition Hive表
- 当后端给我返回了302状态码
- 电脑为什么会卡、CPU和内存的重要性、选哪个好呢?
- linux shell教程(一)
- 英力士苯领60万吨ABS新厂在中国宁波开工奠基
- Python:实现前缀Knuth–Morris–Pratt 算法(附完整源码)
- c语言抛物线弓形图像,[PASCAL]已知凸五边形的5个顶点的坐标,求它的面积?
- 湖北省加快推进云计算标准化促大数据产业发展
- 程序员面试防坑宝典,助你秋招一臂之力(建议收藏,文末有彩蛋)