详解Spring Boot中使用@Scheduled创建定时任务

 更新时间:2017年03月07日 15:38:07   作者:ilinux_one  
本篇文章中主要介绍了Spring Boot中使用@Scheduled创建定时任务,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

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

创建定时任务

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

在Spring Boot的主类中加入@EnableScheduling注解,启用定时任务的配置

 @SpringBootApplication
@EnableScheduling
public class SpringbootScheduletaskApplication {

  public static void main(String[] args) {
    SpringApplication.run(SpringbootScheduletaskApplication.class, args);
  }
}
@Component
public class ScheduledTasks {
  private static final SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
  @Scheduled(fixedRate = 5000)
  public void reportCurrentTime() {
    System.out.println("现在时间:" + sdf.format(new Date()));
  }
}

创建定时任务实现类

运行程序,控制台中可以看到类似如下输出,定时任务开始正常运作了。

2016-05-15 10:40:04.073  INFO 1688 --- [           main]           : 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表达式定义规则

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java并发中线程封闭知识点详解

    Java并发中线程封闭知识点详解

    在本篇文章里我们给大家整理了关于Java并发中线程封闭的知识点总结内容,需要的朋友们学习参考下。
    2019-07-07
  • Spring多线程通过@Scheduled实现定时任务

    Spring多线程通过@Scheduled实现定时任务

    这篇文章主要介绍了Spring多线程通过@Scheduled实现定时任务,@Scheduled 定时任务调度注解,是spring定时任务中最重要的,下文关于其具体介绍,需要的小伙伴可以参考一下
    2022-05-05
  • Java+MyBatis+MySQL开发环境搭建流程详解

    Java+MyBatis+MySQL开发环境搭建流程详解

    Java的MyBatis框架提供了强大的数据库操作支持,这里我们先在本地的开发环境中上手,来看一下Java+MyBatis+MySQL开发环境搭建流程详
    2016-06-06
  • Java实现解析zip压缩包并获取文件内容

    Java实现解析zip压缩包并获取文件内容

    这篇文章主要为大家详细介绍了如何利用Java语言实现页面上传一个源码压缩包,后端将压缩包解压,并获取每个文件中的内容,感兴趣的可以动手尝试一下
    2022-07-07
  • Java Spring 控制反转(IOC)容器详解

    Java Spring 控制反转(IOC)容器详解

    这篇文章主要为大家详细介绍了Spring控制反转IoC入门使用的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • springBoot整合Eureka启动失败的解决方案

    springBoot整合Eureka启动失败的解决方案

    这篇文章主要介绍了springBoot整合Eureka启动失败的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • java数据结构基础:算法

    java数据结构基础:算法

    这篇文章主要介绍了Java的数据解构基础,希望对广大的程序爱好者有所帮助,同时祝大家有一个好成绩,需要的朋友可以参考下,希望能给你带来帮助
    2021-07-07
  • Spring MVC多种情况下进行文件上传的实例

    Spring MVC多种情况下进行文件上传的实例

    上传是Web工程中很常见的功能,SpringMVC框架简化了文件上传的代码,本文给大家总结了Spring MVC多种情况下进行文件上传的实例,并通过代码示例给大家介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • java开发实现订阅到货通知帮我们买到想买的东西

    java开发实现订阅到货通知帮我们买到想买的东西

    这篇文章主要为大家介绍了java开发实现订阅到货通知帮我们买到想买的东西示例demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • java之向linux文件夹下写文件无权限的问题

    java之向linux文件夹下写文件无权限的问题

    这篇文章主要介绍了java之向linux文件夹下写文件无权限的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09

最新评论