@scheduled使用
时间: 2025-02-21 10:53:55 浏览: 74
### 使用 `@Scheduled` 注解实现 Spring Boot 定时任务
在 Spring Boot 中,通过使用 `@Scheduled` 注解可以轻松创建定时任务。为了使这些定时任务生效,在应用程序的主类或配置类上需添加 `@EnableScheduling` 注解[^1]。
#### 启用调度功能
要在整个应用中启用基于注解的任务计划支持,应在启动类或其他配置类中标记 `@EnableScheduling`:
```java
@SpringBootApplication
@EnableScheduling
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
```
此操作激活了对带有 `@Scheduled` 的方法的支持[^2]。
#### 创建定时任务的方法
定义一个简单的定时任务只需要在一个组件内的任意公共无参方法前加上 `@Scheduled` 即可。下面是一个每五秒打印一次消息的例子:
```java
@Component
public class ScheduledTasks {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Scheduled(fixedRate = 5000)
public void reportCurrentTime() {
logger.info("The time is now {}", new Date());
}
}
```
这里使用的参数 `fixedRate=5000` 表示该方法将以固定的速率每隔5秒钟执行一次(单位为毫秒)。除了 `fixedRate` 外还有其他几种方式来控制任务触发的时间间隔和模式,比如 `cron`表达式用于更复杂的调度需求。
需要注意的是,默认情况下,Spring Boot 将使用单线程池来运行所有的定时任务;如果多个任务在同一时间被安排,则它们会被顺序化等待执行完毕后再继续下一个。对于并发执行的需求,可能需要自定义线程池设置[^3]。
阅读全文
相关推荐




















