Spring Boot 第18篇: 定时任务(Scheduling Tasks)

转载 2018年04月17日 09:18:00

这篇文章将介绍怎么通过spring去做调度任务。

构建工程

创建一个Springboot工程,在它的程序入口加上@EnableScheduling,开启调度任务。

@SpringBootApplication
@EnableScheduling
public class SpringbootSchedulingTasksApplication {

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

创建定时任务

创建一个定时任务,每过5s在控制台打印当前时间。

@Component
public class ScheduledTasks {

    private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class);

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

    @Scheduled(fixedRate = 5000)
    public void reportCurrentTime() {
        log.info("The time is now {}", dateFormat.format(new Date()));
    }
}

通过在方法上加@Scheduled注解,表明该方法是一个调度任务。

  • @Scheduled(fixedRate = 5000) :上一次开始执行时间点之后5秒再执行
  • @Scheduled(fixedDelay = 5000) :上一次执行完毕时间点之后5秒再执行
  • @Scheduled(initialDelay=1000, fixedRate=5000) :第一次延迟1秒后执行,之后按fixedRate的规则每5秒执行一次
  • @Scheduled(cron=” /5 “) :通过cron表达式定义规则,什么是cro表达式,自行搜索引擎。

测试

启动springboot工程,控制台没过5s就打印出了当前的时间。

2017-04-29 17:39:37.672 INFO 677 —- [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:37
2017-04-29 17:39:42.671 INFO 677 —- [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:42
2017-04-29 17:39:47.672 INFO 677 —- [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:47
2017-04-29 17:39:52.675 INFO 677 —- [pool-1-thread-1] com.forezp.task.ScheduledTasks : The time is now 17:39:52

总结

在springboot创建定时任务比较简单,只需2步:

  • 1.在程序的入口加上@EnableScheduling注解。
  • 2.在定时方法上加@Scheduled注解。

参考资料

https://spring.io/guides/gs/scheduling-tasks/

源码下载

https://github.com/forezp/SpringBootLearning

spring cloud与spring boot实战

本课程主要从四个章节进行讲解: 1.微服务架构入门 2.spring cloud 基础入门 3.实战Spring Boot 4.注册中心eureka。 请加QQ群:274033905(群名:《spring cloud 实战》),免费获取课件资料哦 本课程的知识目录和思维导图详细介绍地址:http://blog.csdn.net/bobo0218bo/article/details/78442245
  • 2017年10月15日 20:49

Spring Boot 之 Scheduling Tasks定时任务

几乎大部分的应用都会有定时执行任务的需求。使用Spring Boot 之Scheduling Tasks 能够提高您的开发效率。 下载demo :  git clone  https://github...
  • luosai19910103
  • luosai19910103
  • 2016-10-22 21:37:21
  • 4557

SpringBoot定时任务SchedulingTasks

DEMO源自Spring官方文档使用IDEA+MAVEN搭建项目编写pom.xml配置文件,添加依赖
  • goodstuddayupyyeah
  • goodstuddayupyyeah
  • 2017-05-16 20:03:09
  • 577

SpringBoot之Scheduling Tasks

设置计划任务。1 配置Scheduling Taskspackage sckeduling.tasks.hello;import java.text.SimpleDateFormat; import ...
  • xuanfengling
  • xuanfengling
  • 2016-06-14 17:40:45
  • 1253

Spring Boot与Kotlin 整合全文搜索引擎Elasticsearch

Elasticsearch 在全文搜索里面基本是无敌的,在大数据里面也很有建树,完全可以当nosql(本来也是nosql)使用。 这篇文章简单介绍Spring Boot使用Kotlin语言连接操作 ...
  • QuanKeCai
  • QuanKeCai
  • 2018-01-29 10:39:00
  • 102

SpringBoot非官方教程 | 第十八篇: 定时任务(Scheduling Tasks)

这篇文章将介绍怎么通过spring去做调度任务。构建工程创建一个Springboot工程,在它的程序入口加上@EnableScheduling,开启调度任务。...
  • forezp
  • forezp
  • 2017-04-30 16:46:41
  • 28746

Spring任务调度Scheduling Tasks

注解方式第一步、创建maven工程,引入依赖 org.springframework.boot spring-boot-starter-parent 1.4.0.RELEASE...
  • u014513883
  • u014513883
  • 2016-08-29 21:23:19
  • 5681

spring boot:Scheduling Tasks

1、you can create a scheduled taskpackage hello;import java.text.SimpleDateFormat; import java.util.D...
  • qq_28893679
  • qq_28893679
  • 2017-10-25 14:13:41
  • 50

Spring Boot 与 Kotlin 定时任务(Scheduling Tasks)

在编写Spring Boot应用中会遇到这样的场景,比如:需要定时地发送一些短信、邮件之类的操作,也可能会定时地检查和监控一些标志、参数等。 创建定时任务 在Spring Boot中编写定时任...
  • QuanKeCai
  • QuanKeCai
  • 2018-02-02 10:33:53
  • 85

spring - Scheduling Tasks 计划任务

1、使用 @EnableScheduling 注解在spring配置类,开启spring的计划任务 2、在需要计划执行的方法上面加上 @Scheduled 注解,标识此方法为定时计划执行的方法。 ...
  • zhangjian15
  • zhangjian15
  • 2016-09-06 17:50:18
  • 347
收藏助手
不良信息举报
您举报文章:Spring Boot 第18篇: 定时任务(Scheduling Tasks)
举报原因:
原因补充:

(最多只允许输入30个字)