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



  • 相关阅读:
    P1855 榨取kkksc03
    tar.xz格式文件的解压方法(转载)
    mount: unknown filesystem type 'ntfs'(转载)
    rpm安装总结(转载)
    RedHat/CentOS安装五笔输入法(转载)
    centos6中office及中文输入法安装 (转载)
    ubuntu下7z文件的解压方法(转载)
    计算机通信网中最长、最短的概念
    端口号
    Socket调用方式(同步,异步,阻塞,非阻塞)
  • 原文地址:https://www.cnblogs.com/justdojava/p/11098243.html
Copyright © 2020-2023  润新知