spring boot定时任务

介绍

该demo是基于注解(@Scheduled)以及多线程执行的定时任务。

步骤

启用异步执行

springboot实现异步调用

入口类添加启动注解

@EnableScheduling

@EnableAsync
@EnableScheduling
@SpringBootApplication
@IntegrationComponentScan("com.ztjy")
public class MyApplication {
    public static void main(String[] args) {
            SpringApplication.run(MyApplication.class, args);
   }

编写定时任务


@Component
public class TestScheduling {

    @Value("${my.test.name}")
    private String test;

    @Async
    @Scheduled(cron="${my.test.cron}")
    public void printVal(){
        System.out.println(test+Thread.currentThread().getName());
    }

    @Async
    @Scheduled(cron="${my.test.cron}")
    public void printVal2(){
        System.out.println(test+Thread.currentThread().getName());
    }
}

配置文件

每分钟执行一次!

my:
  test:
    name: "王森"
    cron: "*  */1  *  *  * ?"

效果

cron表达式详解

秒(0~59) 分(0~59) 时(0~59) 日(0~31) 月(0~11) 星期(1~7) 年份(1970-2099)
注意:各个之间的区域是由空格分开的。
年份可以省略。

  • 特殊字符介绍
,        3,8 表示第3秒和第8秒
-       3-8 表示第3秒到第8秒之间每秒都触发
*       表示任意值,在秒的区域上表示每秒,在分钟的区域上描述每分钟
/       A/B A表示开始触发点,B表示触发点之后每隔多久再次触发,比如在秒的位置上5/105秒开始触发,5,15,2535,45,55,65等
?     仅被用于月 和 星期 两个子表达式,表示不指定值;

示例

  • 示例1:

  • 示例2:

  • 示例3:

posted @   王森  阅读(216)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示