springboot下的@Scheduled有哪些用法
时间: 2023-10-22 10:21:45 浏览: 83
SpringBoot中使用@Scheduled注解创建定时任务的实现
在Spring Boot中,@Scheduled注解可以用于定时执行任务。@Scheduled有以下用法:
1. 固定时间间隔执行任务
```
@Scheduled(fixedRate = 5000)
public void task() {
// 执行任务
}
```
以上代码表示每隔5秒执行一次任务。
2. 固定延迟时间执行任务
```
@Scheduled(fixedDelay = 5000)
public void task() {
// 执行任务
}
```
以上代码表示延迟5秒后执行任务,执行完后再延迟5秒执行下一次任务。
3. 使用Cron表达式执行任务
```
@Scheduled(cron = "0 0 0 * * ?")
public void task() {
// 执行任务
}
```
以上代码表示每天0点执行任务。
4. 自定义线程池执行任务
```
@Scheduled(fixedRate = 5000, executor = "myThreadPool")
public void task() {
// 执行任务
}
```
以上代码表示使用自定义的线程池执行任务。
5. 任务异常处理
```
@Scheduled(fixedRate = 5000)
public void task() throws Exception {
try {
// 执行任务
} catch (Exception e) {
// 异常处理
}
}
```
以上代码表示当任务执行出现异常时,会进入异常处理逻辑。
注意:以上示例中,@Scheduled注解需要结合@EnableScheduling注解一起使用,才能使定时任务生效。
阅读全文