@Scheduled(fixedRate = 6000)
时间: 2024-08-15 12:06:56 浏览: 105
`@Scheduled(fixedRate = 6000)` 是 Spring 中的一个注解配置选项,用于在基于固定速率的定时任务中设置执行间隔。这个配置告诉 Spring 框架,每经过给定的时间间隔(在这里是6000毫秒,也就是6秒),就会触发一次由该注解标记的方法。
具体的,`fixedRate` 参数决定了每次调用之间相隔多长时间。如果你将 `fixedRate` 设为正数,则表示从上次方法调用结束到下一次调用开始的时间间隔为固定值;如果将 `fixedRate` 设置为负数,则会触发一次立即执行之后按照绝对值来设置下次执行时间的间隔。此配置适用于那些需要在固定的周期内连续执行的情况,例如定时更新数据库索引、定时刷新缓存等场景。
示例代码如下所示:
```java
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ScheduledTask {
@Scheduled(fixedRate = 6000)
public void performTask() {
// 这里的代码会在每6秒执行一次
System.out.println("Task executed at " + new Date());
}
}
```
在这段代码中,`performTask` 方法将会每隔6秒钟执行一次,直到应用被关闭或 `performTask` 方法被显式取消。这种方式相比使用 cron 表达式的 `@Scheduled` 要求更简单明了,在不需要精确时间控制的场景下尤其实用。
### 相关问题:
1. `@Scheduled(fixedDelay vs fixedRate)` - 两者之间的区别是什么?
2. 在什么场景下应该选择 `@Scheduled(fixedRate)` 而不是其他类型的定时任务?
3. `@Scheduled` 注解的其他属性有哪些?
阅读全文