我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信、邮件之类的操作,也可能会定时地检查和监控一些标志、参数等。

创建定时任务

在Spring Boot中编写定时任务是非常简单的事,下面通过实例介绍如何在Spring Boot中创建定时任务,实现每过5秒输出一下当前时间。

  • 在Spring Boot的主类中加入@EnableScheduling注解,启用定时任务的配置
@SpringBootApplication@EnableSchedulingpublic class Application {

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

}
  • 创建定时任务实现类
@Componentpublic class ScheduledTasks {

    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

    @Scheduled(fixedRate = 5000)    public void reportCurrentTime() {        System.out.println("现在时间:" + dateFormat.format(new Date()));    }

}
  • 运行程序,控制台中可以看到类似如下输出,定时任务开始正常运作了。
2016-05-15 10:40:04.073  INFO 1688 --- [           main] com.didispace.Application                : Started Application in 1.433 seconds (JVM running for 1.967)
现在时间:10:40:09
现在时间:10:40:14
现在时间:10:40:19
现在时间:10:40:24
现在时间:10:40:29522
现在时间:10:40:34

关于上述的简单入门示例也可以参见官方的Scheduling Tasks

@Scheduled详解

在上面的入门例子中,使用了@Scheduled(fixedRate = 5000) 注解来定义每过5秒执行的任务,对于@Scheduled的使用可以总结如下几种方式:

  • @Scheduled(fixedRate = 5000) :上一次开始执行时间点之后5秒再执行
  • @Scheduled(fixedDelay = 5000) :上一次执行完毕时间点之后5秒再执行
  • @Scheduled(initialDelay=1000, fixedRate=5000) :第一次延迟1秒后执行,之后按fixedRate的规则每5秒执行一次
  • @Scheduled(cron="*/5 * * * * *") :通过cron表达式定义规则

代码示例

本文的相关例子可以查看下面仓库中的chapter4-1-1目录:

  • Github:https://github.com/dyc87112/SpringBoot-Learning
  • Gitee:https://gitee.com/didispace/SpringBoot-Learning

如果您觉得本文不错,欢迎Star支持,您的关注是我坚持的动力!


Spring Boot中使用@Scheduled创建定时任务相关推荐

  1. 在Spring Boot中使用@Scheduled实现定时任务

    2019独角兽企业重金招聘Python工程师标准>>> 在Spring Boot中使用@Scheduled实现定时任务 之前没有使用Spring Boot的Java风格配置的时候,用 ...

  2. @scheduled注解配置时间_Spring Boot中使用@Scheduled创建定时任务

    我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信.邮件之类的操作,也可能会定时地检查和监控一些标志.参数等. 创建定时任务 在Spring Boot中编写定时 ...

  3. scheduled一分钟执行一次_Spring 中使用 @Scheduled 创建定时任务

    一.定时任务触发条件 1.在 Application 启动类上添加:@EnableScheduling 2.含定时方法的类上添加注解:@Component,该注解将定时任务类纳入 spring bea ...

  4. scheduled一分钟执行一次_Spring中使用@Scheduled创建定时任务

    Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待 4999元包邮 去购买 > 一.定时任务触发条件 1.在 Application 启动类上添加: ...

  5. Spring Boot 如何解决多个定时任务阻塞问题?

    大家好,我是不才磊哥~ 最近长文撸多了,有点累,今天来点简单的. 今天这篇文章介绍一下Spring Boot 中 如何开启多线程定时任务? 为什么Spring Boot 定时任务是单线程的? 想要解释 ...

  6. Spring Boot:在Spring Boot中使用定时任务

    2019独角兽企业重金招聘Python工程师标准>>> 本文主要介绍如何在Spring Boot中使用定时任务,假设你已经建好了一个基础的Spring Boot项目.首先,我们在项目 ...

  7. 如何安装html启动器,如何在Spring Boot中创建自己的启动器?

    如何在Spring Boot中创建自己的启动器? 也许你有一个内部库包或一个在整个应用程序环境中常用的开源库,如果要在多个Spring Boot应用程序中使用它,为它创建一个Spring Boot启动 ...

  8. Spring Boot中使用时序数据库InfluxDB

    除了最常用的关系数据库和缓存之外,之前我们已经介绍了在Spring Boot中如何配置和使用MongoDB.LDAP这些存储的案例.接下来,我们继续介绍另一种特殊的数据库:时序数据库InfluxDB在 ...

  9. 【spring boot2】第8篇:spring boot 中的 servlet 容器及如何使用war包部署

    嵌入式 servlet 容器 在 spring boot 之前的web开发,我们都是把我们的应用部署到 Tomcat 等servelt容器,这些容器一般都会在我们的应用服务器上安装好环境,但是 spr ...

最新文章

  1. 怎么读取java文件,Java怎么读取文件
  2. ZigBee On Windows Mobile--3.模拟器和实物调试
  3. 如何看懂照片的直方图
  4. OptaPlanner - 把example运行起来(运行并浅析Cloud balancing)
  5. 前端学习(1744):前端调试值之调试元素的盒模型
  6. android 4.2修改设置菜单的背景颜色
  7. linux 装nano命令,vim、nano在命令行上如何编辑文件
  8. 在PL/SQL中使用随机数和GUID
  9. 我的世界java种子 要塞,我的世界:稀奇种子,恐龙骨架出现在要塞,你绝对没见过...
  10. vue使用ntko控件完成word上传、html上传
  11. 推荐一个语音机器人项目
  12. python爬虫贴吧_Python爬虫——抓取贴吧帖子
  13. openwrt路由器-timeout while waiting for PADS.
  14. linux强制退出进程
  15. 一个域名可以对应多个ip地址的案例
  16. java获取上传视频的时长
  17. 通过SparkFun制作自己的Fritzing零件
  18. docker.10-Docker主机集群化方案 Docker Swarm
  19. 计算机考试报名无法访问,深圳考试院回应官网无法打开 具体情况是什么
  20. 用mysql语句骂人_MySQL中特别实用的几种SQL语句送给大家

热门文章

  1. TotoiseSVN 使用参考文章
  2. 指向函数的指针 - C语言
  3. 内核抢占,让世界变得更美好 | Linux 内核
  4. 分享一个剪切板的小软件CopyQ
  5. windows xp 下的putty不能使用小键盘的问题
  6. 计算机沟通方式,雅思阅读练习:计算机改变沟通方式
  7. clickhouse 增量更新_ClickHouse王炸功能即将来袭?
  8. sketchup边线设置_春天花花天桥,SketchUp草图大师快速建模!
  9. 【Pytorch神经网络理论篇】 21 信息熵与互信息:联合熵+条件熵+交叉熵+相对熵/KL散度/信息散度+JS散度
  10. bp神经网络预测_股指期货价格变动趋势往往反映的是股票价格的走势,因此BP神经网络对股指期货价格的准确预测就是对股票价格的准确预测。...