Spring Boot(九):定时任务

​在我们开发项目过程中,经常需要定时任务来帮助我们来做一些内容, Spring Boot 默认已经帮我们实行了,只需要添加相应的注解就可以实现

1、pom 包配置

pom 包里面只需要引入 Spring Boot Starter 包即可

  1. <dependencies>

  2. <dependency>

  3. <groupId>org.springframework.boot</groupId>

  4. <artifactId>spring-boot-starter</artifactId>

  5. </dependency>

  6. <dependency>

  7. <groupId>org.springframework.boot</groupId>

  8. <artifactId>spring-boot-starter-test</artifactId>

  9. <scope>test</scope>

  10. </dependency>

  11. </dependencies>

2、启动类启用定时

在启动类上面加上 @EnableScheduling即可开启定时

  1. @SpringBootApplication

  2. @EnableScheduling

  3. public class Application {

  4.  

  5. public static void main(String[] args) {

  6. SpringApplication.run(Application.class, args);

  7. }

  8. }

3、创建定时任务实现类

定时任务1:

  1. @Component

  2. public class SchedulerTask {

  3.  

  4. private int count=0;

  5.  

  6. @Scheduled(cron="*/6 * * * * ?")

  7. private void process(){

  8. System.out.println("this is scheduler task runing "+(count++));

  9. }

  10.  

  11. }

定时任务2:

  1. @Component

  2. public class Scheduler2Task {

  3.  

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

  5.  

  6. @Scheduled(fixedRate = 6000)

  7. public void reportCurrentTime() {

  8. System.out.println("现在时间:" + dateFormat.format(new Date()));

  9. }

  10.  

  11. }

结果如下:

  1. this is scheduler task runing 0

  2. 现在时间:09:44:17

  3. this is scheduler task runing 1

  4. 现在时间:09:44:23

  5. this is scheduler task runing 2

  6. 现在时间:09:44:29

  7. this is scheduler task runing 3

  8. 现在时间:09:44:35

参数说明

@Scheduled 参数可以接受两种定时的设置,一种是我们常用的 cron="*/6 * * * * ?",一种是 fixedRate=6000,两种都表示每隔六秒打印一下内容。

fixedRate 说明

  • @Scheduled(fixedRate=6000) :上一次开始执行时间点之后6秒再执行

  • @Scheduled(fixedDelay=6000) :上一次执行完毕时间点之后6秒再执行

  • @Scheduled(initialDelay=1000,fixedRate=6000) :第一次延迟1秒后执行,之后按 fixedRate 的规则每6秒执行一次

 

示例代码-https://github.com/ityouknow/spring-boot-examples/tree/master/spring-boot-scheduler

精彩回顾:

面试点:Java 中 hashCode() 和 equals() 的关系

容器连接[Docker 系列-7]

现如今的技术浪潮中,我们到底该做些什么?

 

强烈推荐:

《Java 极客技术》知识星球限时优惠,现在加入只需 50 元,仅限前 1000 名,机不可失时不再来。趁早行动吧!

https://t.zsxq.com/J6Em2nU

 

隆重介绍:

Java 极客技术公众号,是由一群热爱 Java 开发的技术人组建成立,专注分享原创、高质量的 Java 文章。如果您觉得我们的文章还不错,请帮忙赞赏、在看、转发支持,鼓励我们分享出更好的文章。

 



 

posted @ 2019-06-27 17:10  Java极客技术  阅读(163)  评论(0编辑  收藏  举报