SpringTask

SpringTask

Spring Task 是 Spring Framework 的一部分,用于提供轻量级的任务执行和调度框架。它不需要单独的依赖,因为它包含在 Spring 的核心库中。如果你使用的是 Spring Boot,那么 Spring Boot 的起步依赖会自动为你管理 Spring Framework 的版本和相应的依赖。

一、基本使用

1.1 准备工作

在启动项加入 @EnableScheduling 注解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.sky;

import ...


@SpringBootApplication
@...
@EnableScheduling
public class SkyApplication {


public static void main(String[] args) {
SpringApplication.run(SkyApplication.class, args);
log.info("server started");

}

/*
* 解决druid 日志报错:discard long time none received connection:xxx
* */
static {
System.setProperty("druid.mysql.usePingMethod","false");
}


}

1.2 使用SpringTask实现定时任务

在需要实现的业务中添加 @Scheduled 注解 在cron属性中 填入cron表达式

案例中的cron表示式为每三秒执行一次日志输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.sky.job;

import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

@Component
@Slf4j
public class JobDemo {
@Scheduled(cron = "0/3 * * * * ?")
public void job(){
log.warn("当前时间:{}", LocalDateTime.now());
}

}


SpringTask
http://example.com/2024/03/03/定时任务/
作者
kangkang
发布于
2024年3月3日
许可协议