Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Spring Task实现简单定时任务

Spring Task实现简单定时任务

作者头像
jwangkun
发布于 2021-12-23 09:28:21
发布于 2021-12-23 09:28:21
85500
代码可运行
举报
文章被收录于专栏:John Wong's BlogJohn Wong's Blog
运行总次数:0
代码可运行

Spring Task是Spring 3.0自带的定时任务,可以将它看作成一个轻量级的Quartz,功能虽然没有Quartz那样强大,但是使用起来非常简单,无需增加额外的依赖,可直接上手使用。

一 如何实现定时任务

1. 开启定时任务

在启动类上增加@EnableScheduling注解,开启定时任务

2. 定时任务方法

使用@Scheduled注解的方法就会被声明成一个定时任务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Slf4j
@Component
public class ScheduledTest {

    @Scheduled(cron = "*/1 * * * * ?")
    public void test1(){
        log.info("这个定时任务1----");
    }
    @Scheduled(cron = "*/1 * * * * ?")
    public void test2(){
        log.info("这个定时任务2----");
    }
    @Scheduled(cron = "*/1 * * * * ?")
    public void test3(){
        log.info("这个定时任务3----");
    }
}

3. 注册bean

使用@Component将这个定时任务类注册成一个bean组件,交给Spring容器管理。

二 cron表达式详解

在spring 4.x中已经不支持7个参数的cronin表达式了,要求必须是6个参数。cron表达式格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{} {} {} {日期(具体哪天)} {} {星期}
  • 秒:必填项,允许的值范围是0-59,支持的特殊符号包括, - * /,表示特定的某一秒才会触发任务,-表示一段时间内会触发任务,*表示每一秒都会触发,/表示从哪一个时刻开始,每隔多长时间触发一次任务。
  • 分:必填项,允许的值范围是0-59,支持的特殊符号和秒一样,含义类推
  • 时:必填项,允许的值范围是0-23,支持的特殊符号和秒一样,含义类推
  • 日期:必填项,允许的值范围是1-31,支持的特殊符号相比秒多了?,表示与{星期}互斥,即意味着若明确指定{星期}触发,则表示{日期}无意义,以免引起冲突和混乱。
  • 月:必填项,允许的值范围是1-12(JAN-DEC),支持的特殊符号与秒一样,含义类推
  • 星期:必填项,允许值范围是1~7 (SUN-SAT),1代表星期天(一星期的第一天),以此类推,7代表星期六,支持的符号相比秒多了?,表达的含义是与{日期}互斥,即意味着若明确指定{日期}触发,则表示{星期}无意义。

如果对cron表达式不是很熟悉,可以网上找一下,有许多生产cron表达式的网站。Spring Task就简单介绍到这了,使用起来非常方便,下一章将介绍Quartz的使用及将任务持久化存储。

下一篇: spring-boot-admin监控服务→

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-10,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SpringBoot系列之使用Spring Task实现定时任务
定时任务是企业开发中很常用的,比如定时推送一些接口数据,在java中实现定时任务的方法有Spring Task、Quartz等等框架,也有JDK自带的ScheduledExecutorService、Timer
SmileNicky
2020/07/23
1.2K0
Spring Boot几种定时任务的实现方式
在实际开发中,我们多多少少都会用到一些定时任务的场景,本文来聊一下常用的定时任务。
田维常
2022/11/25
6700
Spring Boot几种定时任务的实现方式
SpringBoot-整合篇
小简从 0 开始学 Java 知识之 Java-学习路线 中的《SpringBoot-整合篇》,不定期更新所学笔记,期待一年后的蜕变吧!<有同样想法的小伙伴,可以联系我一起交流学习哦!>
小简
2023/01/30
6070
Spring Boot 实现定时任务的 4 种方式
Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。
Java技术栈
2019/06/14
13.6K0
Spring Boot 实现定时任务的 4 种方式
spring boot 系列之八:SpringBoot处理定时任务
本次借用上一篇《spring boot 整合Mybatis》的既有项目结构进行案例调试。
全栈程序员站长
2022/07/18
1.3K0
再见 Spring Task,这款定时任务老而弥坚!
二哥编程知识星球 (戳链接加入)正式上线了,来和 220 多名 小伙伴一起打怪升级吧!这是一个 Java 学习指南 + 编程实战的私密圈子,你可以向二哥提问、帮你制定学习计划、跟着二哥一起做实战项目,冲冲冲。 Java程序员进阶之路网址:https://tobebetterjavaer.com 定时任务的应用场景其实蛮常见的,比如说: 数据备份 订单未支付则自动取消 定时爬取数据 定时推送信息 定时发布文章 等等(想不出来了,只能等等来凑,😆,反正只要等的都需要定时,怎么样,这波圆场可以吧) 编程喵🐱
沉默王二
2022/08/30
5720
SpringBoot中实现定时任务(Quartz)
Spring 3.0以后自带了 task 调度工具,使用比 Quartz简单方便,使用 @Scheduled 注解。
终有救赎
2023/10/22
6710
SpringBoot中实现定时任务(Quartz)
Spring Boot 中实现定时任务的两种方式!
在 Spring + SpringMVC 环境中,一般来说,要实现定时任务,我们有两中方案,一种是使用 Spring 自带的定时任务处理器 @Scheduled 注解,另一种就是使用第三方框架 Quartz ,Spring Boot 源自 Spring+SpringMVC ,因此天然具备这两个 Spring 中的定时任务实现策略,当然也支持 Quartz,本文我们就来看下 Spring Boot 中两种定时任务的实现方式。
江南一点雨
2019/05/07
9600
Spring Boot 中实现定时任务的两种方式!
springboot07、task定时任务
springboot07、task定时任务 定时任务的概述 在项目中开发定时任务应该是一种比较常见的需求,在Java中开发定时任务主要有三种方案:一是使用JDK自带的Timer,二是使用第三方组件Quartz',三是使用Spring Task。 Timer是JDK自带的定时任务工具,其简单易用,但是对于复杂的定时规则无法满足,在实际项目开发中也很少使用到,Quartz功能强大,但是使用起来相对笨重,而Spring Task则具备了前两者之间的优点,使用起来简单,除Spring 相关的包外不需要额外
红目香薰
2022/11/30
4310
springboot07、task定时任务
Quartz Spring与Spring Task总结
Spring对Quartz作了一个封装,同时,Spring自己也提供了一个任务定时器(spring-task),现把它总结一下。 对于Quartz,我们使用的时候主要是注重两个方面,一个是定时任务的业务,另一个就是Cron表达式。定时任务跟具体的业务相关,这无需多说,这里只说明表达式含义及其写法。 Cron表达式包括下面7个字段并区别顺序:秒0-59,分0-59,小时0-23,月内日期1-31,月1-12或者JAN-DEC,周内日期1-7或者SUN-SAT,年(可选字段)留空或者1970-2099并
bear_fish
2018/09/19
9720
Quartz Spring与Spring Task总结
学会这10种定时任务,我有点飘了
最近有几个读者私信给我,问我他们的业务场景,要用什么样的定时任务。确实,在不用的业务场景下要用不同的定时任务,其实我们的选择还是挺多的。我今天给大家总结10种非常实用的定时任务,总有一种是适合你的。
苏三说技术
2021/05/04
3.2K1
学会这10种定时任务,我有点飘了
Spring 定时任务
本文参考自Spring官方文档 34. Task Execution and Scheduling。
乐百川
2022/05/05
1K0
【Spring】定时任务详解实例-@Scheduled
最近在做项目,时间比较紧张,也有比较久没写博客了。 现在项目的Redis缓存需要用到定时任务,就学习了一下Spring 的@Scheduled注解。使用起来很简单。
谙忆
2021/01/21
8580
【Spring】定时任务详解实例-@Scheduled
Spring Boot @Scheduled 定时任务实战
其中 @EnableScheduling 注解的作用是发现注解@Scheduled的任务并后台执行。
Java技术栈
2019/11/04
1.2K0
Spring Task 超详解版
也就是在启动类上方添加@EnableScheduling注解即可开启定时任务,代码如下:
会洗碗的CV工程师
2023/11/07
5670
Spring Task 超详解版
Spring boot定时任务
可以看出@Scheduled(fixedDelay = 3000)表示执行完第一次后延迟3000毫秒再次执行
九转成圣
2024/04/10
1600
spring定时任务详解(@Scheduled注解)
spring的定时任务默认是单线程,多个任务执行起来时间会有问题(B任务会因为A任务执行起来需要20S而被延后20S执行),如下图所示:
全栈程序员站长
2022/09/09
1.7K0
一.使用Scheduled 定时任务器
本文最后更新于 874 天前,其中的信息可能已经有所发展或是发生改变。 1. pom <!--添加Scheduled坐标--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>5.2.3.RELEASE</version> </dependency> 2. 编写定时任务类 /** * 定时任务Demo * @a
Yuyy
2022/06/28
5640
重学SpringBoot系列之异步任务与定时任务
在 Spring Boot 入口类上配置 @EnableAsync 注解开启异步处理。 创建任务抽象类 AbstractTask,并分别配置三个任务方法 doTaskOne(),doTaskTwo(),doTaskThree()。
大忽悠爱学习
2021/12/07
1.5K0
重学SpringBoot系列之异步任务与定时任务
定时任务应该这么玩
在电商系统中会经常遇到这样一种场景,就是商品的定时上下架功能,总不能每次都手动执行吧,这个时候我们首先想到的就是利用定时任务来实现这个功能。
说故事的五公子
2021/01/21
1.2K0
相关推荐
SpringBoot系列之使用Spring Task实现定时任务
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验