zoukankan      html  css  js  c++  java
  • 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. public static void main(String[] args) {

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

    6. }

    7. }

    3、创建定时任务实现类

    定时任务1:

    1. @Component

    2. public class SchedulerTask {

    3. private int count=0;

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

    5. private void process(){

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

    7. }

    8. }

    定时任务2:

    1. @Component

    2. public class Scheduler2Task {

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

    4. @Scheduled(fixedRate = 6000)

    5. public void reportCurrentTime() {

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

    7. }

    8. }

    结果如下:

    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 文章。如果您觉得我们的文章还不错,请帮忙赞赏、在看、转发支持,鼓励我们分享出更好的文章。



  • 相关阅读:
    图文详解AO打印(端桥模式)
    ubuntu svn下载代码出错
    zip error: Invalid command arguments
    秒杀系统设计与实现
    聊聊技术选型
    分布式事务,第三方接口一致性问题
    单系统下的分布式数据库事务方案(拓展spring的事务管理器)AgileBPM多数据的解决方案
    activiti flowable 开源工作流引擎项目整合开发实施实践总结
    java map循环的最优写法(之前写过好多种,这个听说最好记住就行)
    eclipse中maven项目交付svn忽略配置文件(转)
  • 原文地址:https://www.cnblogs.com/justdojava/p/11098243.html
Copyright © 2011-2022 走看看