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入门基础相关推荐

  1. ***入门基础知识(超全)

    ***入门基础知识(超全) [sell=2]  DOS 常用命令: dir 列文件名 deltree 删除目录树 cls 清屏 cd 改变当前目录 copy 拷贝文件 diskcopy 复制磁盘 de ...

  2. golang开发工程师-第一步:golang入门基础教学

    golang入门基础教学 前言 一.golang的优势何在? 二.goland破解教程 三.goland的使用教程 四.一个简单的go代码 五.变量的声明和赋值 六.数据类型的基本介绍 七.访问权限[ ...

  3. SpringBoot从入门到精通教程(二十九)- 微信企业支付集成(五分钟集成)

    需求背景 SpringBoot用法:微信企业支付集成(五分钟集成) 问题痛点 通过SpringBoot框架,集成服务端微信企业支付接口,做到下载即用(填写好相关微信支付后台相关Key信息),最快五分钟 ...

  4. SpringBoot从入门到精通-佟刚-专题视频课程

    SpringBoot从入门到精通-437人已学习 课程介绍 SpringBoot是企业级开发的整体整合解决方案,特别用于构建微服务应用,旨在用简单的方式让开发人员适应各种开发场景: 课程收益      ...

  5. SpringBoot | SpringBoot快速入门

    文章目录 SpringBoot快速入门(一) 1.什么是SpringBoot 2.什么是微服务架构 3.第一个SpringBoot程序 4.SpringBoot自动装配原理 (1)Pom.xml (2 ...

  6. SpringBoot系统整理|基础篇|黑马视频

    写在前面:很早之前看了狂神的springboot快速入门,后来发现还是有很多开发知识点需要补充学习.乘着假期,将基础篇.运维实用篇.开发实用篇.原理篇一口气学习巩固,再次记录下学习笔记.系列笔记在sp ...

  7. 视频教程-springboot从入门到精通-Java

    springboot从入门到精通 本人具有7年java开发经验,两年java教学经验,擅长java开发相关技术,能够熟掌握并应用目前主流web开发技术,如SSH,SSM等,数据库开发技术oracle, ...

  8. SpringBoot快速入门(IDEA联网版)

    SpringBoot快速入门 目录 SpringBoot快速入门 @[TOC](目录) SpringBoo介绍 1.新建空项目 2.查看maven版本 3.创建新模块 4.springboot联网功能 ...

  9. 物流快递系统前、后端+Java语言+SpringBoot项目+MVC三层架构+maven+Mysql+Tomcat+可以用于学习SpringBoot项目入门

    物流快递系统前.后端+Java语言+SpringBoot项目+MVC三层架构+Mysql+Tomcat+可以用于学习SpringBoot项目入门 可以用于课程设计.毕业设计的知识点入门学习 提示:此资 ...

最新文章

  1. sql server总结二
  2. Spark 运行机制
  3. 【转】程序在内存中的分布
  4. 2021年Q2母婴行业季度洞察报告
  5. 长沙中级职称计算机考试时间,湖南土木工程中级职称注册及每年考试时间是什么时候...
  6. Android-即时通训
  7. 利器:服务器与CST时间误差8小时的修复方法——timedatectl
  8. xutils使用流程
  9. OpenShift 4 - 部署一个基于 Serverless 的 Banking 应用
  10. python编码转换规范_Python转载[编码规范]
  11. Doris之资源管理
  12. Rails secret token bug
  13. Java 设计模式 代理模式
  14. mac版ps快捷键大全
  15. suse linux快捷键,Suse Linux整理大全:快捷键
  16. python语句分号_你知道分号在各种编程语言中的作用吗?
  17. php json_encode不要反斜杠,【json+encode让URL内容斜杠+不转义】
  18. 排序算法lowB三人组--冒泡排序-选择排序-插入排序
  19. SysTick系统滴答定时器
  20. 代码审计[java安全编程]

热门文章

  1. 开机到登陆画面正常,输入密码进入桌面很慢的问题解决
  2. Sqoop 同步Parquet partition Hive表
  3. 当后端给我返回了302状态码
  4. 电脑为什么会卡、CPU和内存的重要性、选哪个好呢?
  5. linux shell教程(一)
  6. 英力士苯领60万吨ABS新厂在中国宁波开工奠基
  7. Python:实现前缀Knuth–Morris–Pratt 算法(附完整源码)
  8. c语言抛物线弓形图像,[PASCAL]已知凸五边形的5个顶点的坐标,求它的面积?
  9. 湖北省加快推进云计算标准化促大数据产业发展
  10. 程序员面试防坑宝典,助你秋招一臂之力(建议收藏,文末有彩蛋)