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

Spring Boot定时任务设置与实现

Spring Boot定时任务设置与实现

在Spring Boot中,可以使用@Scheduled注解来创建定时任务。以下是一个简单的示例,展示了如何在项目启动后每5秒调用一次指定的方法。

1. 添加依赖

首先,确保你的pom.xml文件中包含Spring Boot的依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

2. 创建定时任务类

接下来,创建一个类并使用@Component注解将其标记为Spring组件。然后使用@Scheduled注解来定义定时任务。

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class MyScheduledTask {

    // 每5秒执行一次
    @Scheduled(fixedRate = 5000)
    public void myTask() {
        System.out.println("定时任务执行了,当前时间: " + System.currentTimeMillis());
        // 在这里调用你想要执行的方法
        myMethod();
    }

    public void myMethod() {
        // 这里是你要执行的具体逻辑
        System.out.println("调用了myMethod方法");
    }
}

3. 启用定时任务

在你的Spring Boot主应用程序类上添加@EnableScheduling注解,以启用定时任务功能。

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

@SpringBootApplication
@EnableScheduling
public class MySpringBootApplication {

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

4. 运行项目

现在,当你启动Spring Boot应用程序时,定时任务将会自动开始执行,并且每5秒调用一次myTask()方法。

5. 输出示例

当你运行项目时,控制台将会输出类似以下的内容:

定时任务执行了,当前时间: 1633024800000
调用了myMethod方法
定时任务执行了,当前时间: 1633024805000
调用了myMethod方法
定时任务执行了,当前时间: 1633024810000
调用了myMethod方法
...

相关文章:

  • 5.3 位运算专题:LeetCode 371. 两整数之和
  • 区块链驱动金融第十章——走进另类币与加密货币生态系统:比特币之外的广阔天地
  • 知识库外挂 vs 大脑全开:RAG与纯生成式模型(如GPT)的终极Battle
  • vue判断组件是否有传入的slot,有就渲染slot,没有就渲染内部节点默认内容
  • MATLAB—从入门到精通的第四天:函数、绘图与数学魔法
  • 【Python机器学习】3.5. 决策树实战:基于Iris数据集
  • 使用LLama-Factory的简易教程(Llama3微调案例+详细步骤)
  • 【RabbitMQ高级特性】消息确认机制、持久化、发送方确认、TTL和死信队列
  • 腾讯云大模型知识引擎×DeepSeek | 企业应用快速接入手册
  • 【Redis实战专题】「技术提升系列」​RedisJSON核心机制与实战应用解析(入门基础篇)
  • Spring MVC配置
  • Jackson使用ArrayNode对象实现JSON列表数据(二):增、删、改、查
  • Redis 发布订阅
  • GZCTF平台搭建及题目上传
  • 基于简单神经网络的线性回归
  • 【Vue3入门1】01-Vue3的基础 + ref reactive
  • 什么是 DAO?
  • 深入解析libsunrpc:构建分布式系统的核心RPC库
  • [Windows] AI智能音频分离软件SpleeterGui v2.9.5.0【官方中文版】
  • 基于BERT的序列到序列(Seq2Seq)模型,生成文本摘要或标题
  • 全国电影工作会:聚焦扩大电影国际交流合作,提升全球影响力
  • 国家核安全局局长:我国核电进入大规模建设高峰期,在建规模超其他国家总和
  • 以军称若停火谈判无进展,将大幅扩大加沙军事行动
  • 伊朗港口爆炸事件已致195人受伤
  • 西北大学党委副书记吕建荣调任西安财经大学党委书记
  • 利用AI捏造“天价骨灰盒”谣言,内蒙古包头一网民被行政处罚