【转载】Springboot2.x 使用 @Scheduled 实现定时任务

参考

  1. https://cloud.tencent.com/developer/article/1445905 (定时任务实现方法)
  2. https://www.jianshu.com/p/ff876c2ab24a (@Scheduled使用)
  3. https://blog.csdn.net/luolearn/article/details/119565954 (cron学习)

注意

  1. 实现定时任务的方法不仅这一种
  2. 定时任务也可以同时执行多个线程(描述不准确,大概理解吧)
  3. 定时任务默认单线程,建议开启异步任务或多线程任务,防止堵塞

步骤

  1. 在入口文件添加注解 @EnableScheduling 开启定时任务。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@EnableScheduling
@SpringBootApplication
public class XiaQiuChuApplication {
    public static void main(String[] args) {
        SpringApplication.run(XiaQiuChuApplication.class, args);
    }

}
  1. 在要定时执行的方法上标注注解 @Scheduled(cron = "0/5 * * * * ?") 实现每5s 执行一次。
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import lombok.extern.slf4j.Slf4j;

@Slf4j
@Component
public class XiaQiuChuTestScheduled {
    @Scheduled(cron = "0/5 * * * * ?")
    public void scheduled(){
        System.out.println("定时任务测试");
        log.info("=====>>>>>使用cron  {}",System.currentTimeMillis());
    }
}
posted @   夏秋初  阅读(49)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示