SpringBoot自带的定时任务代码实现
时间: 2023-11-19 21:58:43 浏览: 95
SpringBoot自带的定时任务使用了Spring框架的Task Execution和Scheduling支持,可以轻松地实现各种任务的定时执行。下面是一个简单的示例代码:
1. 在SpringBoot的启动类上加上@EnableScheduling注解开启定时任务支持。
```java
@SpringBootApplication
@EnableScheduling
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```
2. 在需要定时执行的方法上添加@Scheduled注解,设置定时任务的执行时间。
```java
@Component
public class MyTask {
@Scheduled(cron = "0 0/10 * * * ?") // 每10分钟执行一次
public void doTask() {
// 执行定时任务的代码
}
}
```
上述代码中,@Scheduled注解中的cron表达式定义了每10分钟执行一次任务。可以根据具体需求设置不同的执行时间。
除了cron表达式外,@Scheduled注解还支持fixedRate和fixedDelay两种方式,分别表示固定频率和固定延时执行任务。例如:
```java
@Component
public class MyTask {
@Scheduled(fixedRate = 1000) // 每隔1秒钟执行一次
public void doTask1() {
// 执行定时任务的代码
}
@Scheduled(fixedDelay = 5000) // 上一次执行完毕后延迟5秒钟再执行
public void doTask2() {
// 执行定时任务的代码
}
}
```
SpringBoot自带的定时任务还支持异步执行和多线程执行,可以根据具体需求进行配置。
阅读全文