当前位置: 首页 > news >正文

Spring Boot文档阅读笔记-Scheduling Tasks

这篇博文将说明,如何一步一步完成Spring的任务调度功能。

主要是使用@Scheduled注解,完成每5秒打印当前时间。

首先在Maven中增加awaitility依赖包

<dependency>
  <groupId>org.awaitility</groupId>
  <artifactId>awaitility</artifactId>
  <version>3.1.2</version>
  <scope>test</scope>
</dependency>

整体Maven如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>SchedulingTasks</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.1.10.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.awaitility</groupId>
            <artifactId>awaitility</artifactId>
            <version>3.1.2</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

</project>

创建调度调度任务的类,ScheduleTasks.java

package cn.it1995.component;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;

@Component
public class ScheduledTasks {

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

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

    @Scheduled(fixedDelay = 5000)
    public void reportCurrentTime(){

        log.info("The time is now {}", dateFormat.format(new Date()));
    }
}

@Scheduled注解说明了在合适调用,比如fixedDelay说明每多少毫秒调用一次。这里还有其他选项,比如使用corn,这里全称应该是crontab,也就是定时任务,如@Scheduled(cron="...")

package cn.it1995;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class Main {

    public static void main(String[] args){

        SpringApplication.run(Main.class, args);
    }
}

最后在@SpringBootApplication注解的地方,也就是main方法的地方,加上@EnableScheduling注解,这个注解的作用是使得后台任务调用执行被创建。

代码如下:Main.java

package cn.it1995;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class Main {

    public static void main(String[] args){

        SpringApplication.run(Main.class, args);
    }
}

运行截图如下:

代码打包如下:

Java/SchedulingTasks at master · fengfanchen/Java · GitHub

 

相关文章:

  • 24二战上岸北邮计算机经验贴(初试+复试超详细)
  • Java23种设计模式-结构型模式之桥接模式
  • Java基础之JVM对象内存分配机制简介
  • 【Git教程】(十七)发行版交付 — 概述及使用要求,执行过程及其实现,替代解决方案 ~
  • Java之多态
  • go 基础概念-变量和类型使用注意事项
  • CSS常见选择器
  • React18源码: Fiber树的初次创建过程图文详解
  • 自动驾驶---行业发展及就业环境杂谈
  • 东芝工控机维修东芝电脑PC机维修FA3100A
  • 配置与管理Samba服务器
  • 1 开源鸿蒙OpenHarmony niobe407 STM32F407IGT6芯片轻型系统全量源码4.1版本下载流程
  • HTML爱心照片墙源码
  • [附源码]计算机毕业设计基于SpringBoot的党务管理系统
  • 使用Python和SAS Viya分析社交网络
  • Java并发编程学习14-任务关闭(上)
  • Nginx安装搭建之源码方式(Centos7)
  • 华为网络模拟器ENSP安装(附安装包)
  • [附源码]计算机毕业设计基于Springboot的项目管理系统
  • RISC-V SiFiveU64内核——L2 Prefetcher预期器
  • Java项目:SSM电器商城系统
  • 线程池详细介绍
  • 微服务框架 SpringCloud微服务架构 10 使用Docker 10.9 数据卷挂载案例2
  • HTML5期末大作业:用DIV+CSS技术设计的网页与实现(剪纸传统文化网页设计主题)
  • 【Verilog基础】Verilog中不可综合语句及可综合模型原则
  • Nodejs进程间通信
  • VMwareWorkStation如何添加万兆网卡,万兆网卡添加教程
  • Android-Jetpack Compose的简单运用
  • 振弦采集模块的信号检测与分析计算
  • 后端存储实战课——高速增长篇
  • [附源码]计算机毕业设计基于SpringBoot的高校课程知识库
  • 项目管理逻辑:为什么职能部门官僚主义气息浓重?