详解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表达式定义规则

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

相关文章

  • Java8新特性之接口中的默认方法和静态方法详解

    Java8新特性之接口中的默认方法和静态方法详解

    今天带大家学习的是Java8新特性的相关知识,文章围绕着Java接口中的默认方法和静态方法展开,文中有非常详细的的代码示例,需要的朋友可以参考下
    2021-06-06
  • Java过滤器Filter的基本使用教程

    Java过滤器Filter的基本使用教程

    过滤器通常对一些web资源进行拦截,做完一些处理器再交给下一个过滤器处理,直到所有的过滤器处理器,再调用servlet实例的service方法进行处理。本文将通过示例为大家讲解Java中过滤器Filter的用法与实现,需要的可以参考一下
    2023-02-02
  • SpringBoot基于数据库的定时任务统一管理的实现

    SpringBoot基于数据库的定时任务统一管理的实现

    这篇文章主要介绍了SpringBoot基于数据库的定时任务统一管理的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Java编程实现从尾到头打印链表代码实例

    Java编程实现从尾到头打印链表代码实例

    这篇文章主要介绍了Java编程实现从尾到头打印链表代码实例,小编觉得挺不错的,这里分享给大家,供需要的朋友参考。
    2017-10-10
  • SpringBoot 自动配置失效的解决方法

    SpringBoot 自动配置失效的解决方法

    本文主要介绍了SpringBoot 自动配置失效的解决方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • SpringCloud Alibaba框架介绍

    SpringCloud Alibaba框架介绍

    spring cloud是一个基于springboot实现的微服务架构开发工具,目前主流的SpringCloud分为SpringCloud Netflix和阿里云开源的SpringCloud Alibaba两个系列,本文主要介绍SpringCloud Alibaba框架,感兴趣的朋友可以参考一下
    2023-04-04
  • Javaweb实战之实现蛋糕订购系统

    Javaweb实战之实现蛋糕订购系统

    随着网络的普及与发展,网上购物逐渐成为一种主流消费的方式。这篇文章主要介绍了通过JavaWeb制作一个线上蛋糕订购系统,文中示例代码讲解详细,需要的朋友可以参考一下
    2021-12-12
  • Spring boot 整合CXF开发web service示例

    Spring boot 整合CXF开发web service示例

    这篇文章主要介绍了Spring boot 整合CXF开发web service示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Spring Boot读取自定义配置文件

    Spring Boot读取自定义配置文件

    在Spring Boot项目中我们经常需要读取application.yml配置文件的自定义配置,今天就来罗列一下从yaml读取配置文件的一些常用手段和方法。
    2021-05-05
  • java GUI界面初步入门示例【AWT包】

    java GUI界面初步入门示例【AWT包】

    这篇文章主要介绍了java GUI界面,结合简单实例形式分析了java使用AWT包进行图形界面操作相关使用技巧,需要的朋友可以参考下
    2020-01-01

最新评论