0%

Springboot集成定时任务功能


参考文章:http://www.ityouknow.com/springboot/2016/12/02/spring-boot-scheduler.html


1.集成pom包依赖

1
2
3
4
5
6
7
8
9
10
11
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

2.在启动类中添加注释

在启动类中添加@EnableScheduling即可开启定时

1
2
3
4
5
6
7
8
@SpringBootApplication
@EnableScheduling
public class Application {

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


3.创建任意的一个定时线程实现类

1
2
3
4
5
6
7
8
@Component
public class SchedulerTask {

@Scheduled(cron = "0 0,30 * * * *") //cron接受cron表达式,根据cron表达式确定定时规则
public void schedulerTask() {
// todo 业务
}
}

cron表达式可以参考这篇博文:https://www.jianshu.com/p/e9ce1a7e1ed1


4.fixedRate 参数说明

@Scheduled(fixedRate = 6000) :上一次开始执行时间点之后6秒再执行
@Scheduled(fixedDelay = 6000) :上一次执行完毕时间点之后6秒再执行
@Scheduled(initialDelay=1000, fixedRate=6000) :第一次延迟1秒后执行,之后按 fixedRate 的规则每6秒执行一次