首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringBoot定时任务@EnableScheduling这个注解如何使用

SpringBoot定时任务@EnableScheduling这个注解如何使用

作者头像
一写代码就开心
发布于 2022-12-01 05:09:43
发布于 2022-12-01 05:09:43
81500
代码可运行
举报
文章被收录于专栏:java和pythonjava和python
运行总次数:0
代码可运行

目录

1 使用这个注解的目的

设置在特定的时间去执行某一个类,或者方法

2 使用步骤

2.1 导入基本依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>

    <dependencies>
        <!-- SpringBoot 核心组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

2.2 写一个springboot启动类

启动类里面使用@EnableScheduling 注解开启功能,自动扫描

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@SpringBootApplication
@EnableScheduling //开启定时任务
public class MainApplication {

    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }
}

2.3 要执行的方法或者类上写注解

要在任务的类上写@Component 要在任务方法上写@Scheduled

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Component
public class ggg{
    //表示方法执行完成后5秒
    @Scheduled(fixedDelay = 5000)
    public void yy() throws InterruptedException {
        System.out.println("fixedDelay 每隔5秒" + new Date());
    }
}

写完以上的代码,只要项目启动的,到了方法上面设置的时间,方法就会执行

3 注解参数的讲解

fixedDelay和fixedRate,单位是毫秒,这里这里就是5秒和3秒, 它们的区别就是:fixedRate就是每多次分钟一次,不论你业务执行花费了多少时间。我都是1分钟执行1次,而fixedDelay是当任务执行完毕后1分钟在执行。所以根据实际业务不同,我们会选择不同的方式。

cron表达式:比如你要设置每天什么时候执行,就可以用它 cron表达式,有专门的语法,而且感觉有点绕人,不过简单来说,大家记住一些常用的用法即可,特殊的语法可以单独去查。

cron一共有7位,但是最后一位是年,可以留空,所以我们可以写6位:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* 第一位,表示秒,取值0-59
* 第二位,表示分,取值0-59
* 第三位,表示小时,取值0-23
* 第四位,日期天/日,取值1-31
* 第五位,日期月份,取值1-12
* 第六位,星期,取值1-7,星期一,星期二...,注:
 不是第1周,第二周的意思
          另外:1表示星期天,2表示星期一。
*7为,年份,可以留空,取值1970-2099

cron中,还有一些特殊的符号,含义如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(*)星号:可以理解为每的意思,每秒,每分,每天,每月,每年...
(?)问号:问号只能出现在日期和星期这两个位置。
(-)减号:表达一个范围,如在小时字段中使用“10-12”,
则表示从1012点,即10,11,12
(,)逗号:表达一个列表值,如在星期字段中使用“1,2,4”,
则表示星期一,星期二,星期四
(/)斜杠:如:x/y,x是开始值,y是步长,比如在第一位(秒)
 0/15就是,从0秒开始,每15秒,最后就是015304560   
  另:*/y,等同于0/y

举例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0 0 3 * * ?     每天3点执行
0 5 3 * * ?     每天35分执行
0 5 3 ? * *     每天35分执行,与上面作用相同
0 5/10 3 * * ?  每天3点的 5分,15分,25分,35分,45分,55分这几个时间点执行
0 10 3 ? * 1    每周星期天,310分 执行,注:1表示星期天    
0 10 3 ? * 1#3  每个月的第三个星期,星期天 执行,#号只能出现在星期的位置
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SpringBoot 整合定时任务
@Scheduled 来申明这是一个任务,包括cron,fixDelay,fixRate等类型(方法上,需先开启计划任务的支持)
一个风轻云淡
2023/10/15
2570
SpringBoot系列之使用Spring Task实现定时任务
定时任务是企业开发中很常用的,比如定时推送一些接口数据,在java中实现定时任务的方法有Spring Task、Quartz等等框架,也有JDK自带的ScheduledExecutorService、Timer
SmileNicky
2020/07/23
1.2K0
Spring学习笔记(二十五)——springboot定时任务和Gson、Date、进制等工具的使用
在项目开发过程中,我们经常需要执行具有周期性的任务。通过定时任务可以很好的帮助我们实现。 spring项目启动后想对一些数据做同步,一些表数据要不定时统计,一些业务报表的汇总和生成,大量数据导入后台处理,一般都是用定时任务去处理,对于太占资源的任务需要后台处理,越复杂的系统定时任务也越多,需要监控的东西也很多。 而在springBoot提供了简单的定时任务支持,由于Spring Schedule包含在spring-boot-starter基础模块中了,所有不需要增加额外的依赖。
不愿意做鱼的小鲸鱼
2022/09/26
1.1K0
Spring学习笔记(二十五)——springboot定时任务和Gson、Date、进制等工具的使用
SpringBoot实现定时任务@EnableScheduling
来源:http://blog.csdn.net/weixin_42949841/article/details/108695570
Java小咖秀
2020/11/03
5590
SpringBoot实现定时任务@EnableScheduling
SpringBoot 集成 Schedule 详解
Schedule 主要有三种调度方式:fixedRate、fixedDelay、cron表达式。
solocoder
2022/04/06
7350
SpringBoot 集成 Schedule 详解
SpringBoot 定时任务踩坑记录
springboot已经支持了定时任务Schedule模块,一般情况已经完全能够满足我们的实际需求。今天就记录一下我使用 schedule 时候踩的坑吧。
JAVA葵花宝典
2019/05/24
8420
Spring Boot系列之使用@Scheduled实现定时任务
假设,我们有一个数据同步的需求:每隔5秒执行一次数据同步。那么我们该如何实现这个数据同步任务呢?
冯文议
2021/10/25
8020
Spring Boot系列之使用@Scheduled实现定时任务
@scheduled注解 定时任务控制(Spring响应式编程)
项目经常会用到定时任务,实现定时任务的方式有很多种。在Spring框架中,实现定时任务很简单,常用的实现方式是使用注解@Scheduled。
全栈程序员站长
2022/07/31
8050
@scheduled注解 定时任务控制(Spring响应式编程)
【SpringBoot2.0系列10】SpringBoot之@Scheduled任务调度实现结语
相信大家在实际工作场景中会遇到这样的情况,系统之间存在数据交换,为了不影响正常服务器运,我们需要在每天的凌晨来进行数据交换,但是让程序每天凌晨自动执行呢,下面带大家来了解一下springboot定时任务调度。
yukong
2018/09/03
3.8K0
【SpringBoot2.0系列10】SpringBoot之@Scheduled任务调度实现结语
重学SpringBoot系列之异步任务与定时任务
在 Spring Boot 入口类上配置 @EnableAsync 注解开启异步处理。 创建任务抽象类 AbstractTask,并分别配置三个任务方法 doTaskOne(),doTaskTwo(),doTaskThree()。
大忽悠爱学习
2021/12/07
1.5K0
重学SpringBoot系列之异步任务与定时任务
Springboot的默认定时任务——Scheduled注解
用户1134788
2018/01/05
1.8K0
springboot07、task定时任务
springboot07、task定时任务 定时任务的概述 在项目中开发定时任务应该是一种比较常见的需求,在Java中开发定时任务主要有三种方案:一是使用JDK自带的Timer,二是使用第三方组件Quartz',三是使用Spring Task。 Timer是JDK自带的定时任务工具,其简单易用,但是对于复杂的定时规则无法满足,在实际项目开发中也很少使用到,Quartz功能强大,但是使用起来相对笨重,而Spring Task则具备了前两者之间的优点,使用起来简单,除Spring 相关的包外不需要额外
红目香薰
2022/11/30
4480
springboot07、task定时任务
SpringBoot中实现定时任务(Quartz)
Spring 3.0以后自带了 task 调度工具,使用比 Quartz简单方便,使用 @Scheduled 注解。
终有救赎
2023/10/22
7460
SpringBoot中实现定时任务(Quartz)
spring boot 系列之八:SpringBoot处理定时任务
本次借用上一篇《spring boot 整合Mybatis》的既有项目结构进行案例调试。
全栈程序员站长
2022/07/18
1.4K0
SpringBoot整合Scheduled(定时任务器)
Cron 表达式是一个字符串,分为 6 或 7 个域,每一个域代表一个含义 Cron 有如下两种语法格式:
JAVA葵花宝典
2019/12/02
1.1K0
Spring Boot: 定时任务注解@Scheduled以及动态任务SchedulingConfigurer 实践
cronExpression定义时间规则,Cron表达式由6或7个空格分隔的时间字段组成:秒 分钟 小时 日期 月份 星期 年(可选)
Freedom123
2024/03/29
3.1K0
Spring Boot: 定时任务注解@Scheduled以及动态任务SchedulingConfigurer 实践
SpringBoot整合Scheduled(定时任务器)
  Scheduled 定时任务器:是Spring3.0以后自带的一个定时任务器。我们来看下在SpringBoot中我们怎么使用
用户4919348
2019/05/22
9730
Spring Boot几种定时任务的实现方式
在实际开发中,我们多多少少都会用到一些定时任务的场景,本文来聊一下常用的定时任务。
田维常
2022/11/25
6920
Spring Boot几种定时任务的实现方式
第二十六章:SpringBoot使用@Scheduled创建定时任务
定时任务一般会存在中大型企业级项目中,为了减少服务器、数据库的压力往往会采用时间段性的去完成某些业务逻辑。比较常见的就是金融服务系统推送回调,一般支付系统订单在没有收到成功的回调返回内容时会持续性的回调,这种回调一般都是定时任务来完成的。还有就是报表的生成,我们一般会在客户访问量过小的时候来完成这个操作,那往往都是在凌晨。这时我们也可以采用定时任务来完成逻辑。SpringBoot为我们内置了定时任务,我们只需要一个注解就可以开启定时为我们所用了。 本章目标 基于SpringBoot架构完成注解@Schedu
恒宇少年
2018/06/27
8380
Spring Boot 实现定时任务的 4 种方式
Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。
Java技术栈
2019/06/14
13.7K0
Spring Boot 实现定时任务的 4 种方式
推荐阅读
相关推荐
SpringBoot 整合定时任务
更多 >
LV.0
这个人很懒,什么都没有留下~
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档