@Scheduled注解的作用
时间: 2023-07-14 16:57:39 浏览: 96
@Scheduled注解是Spring框架中的一个定时任务注解,用于实现定时任务。通过该注解可以指定一个方法在固定的时间间隔或者特定的时间执行。
可以使用@Scheduled注解来实现以下几种任务:
1. 固定时间间隔执行任务
2. 指定时间点执行任务
3. cron表达式执行任务
例如,@Scheduled(fixedRate = 5000)表示每隔5秒执行一次定时任务。@Scheduled(cron = "0 0 12 * * ?")表示每天中午12点执行一次定时任务。
相关问题
在 @Scheduled 注解中添加 @Async 注解
在 @Scheduled 注解中添加 @Async 注解可以实现定时任务的异步执行。@Async 注解可以用于标记一个方法为异步方法,表示该方法将在一个独立的线程中执行,而不会阻塞当前线程。
下面是一个示例:
```java
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class MyScheduledTask {
@Async
@Scheduled(fixedRate = 5000) // 每隔5秒执行一次
public void myAsyncTask() {
// 异步执行的任务逻辑
System.out.println("异步任务开始执行...");
// ...
System.out.println("异步任务执行完成!");
}
}
```
在上述示例中,我们在定时任务方法上同时添加了 @Async 和 @Scheduled 注解。@Scheduled 注解用于配置定时任务的执行频率,这里使用 fixedRate 表示每隔5秒执行一次。@Async 注解表示该方法将异步执行。
需要注意的是,为了使 @Async 注解生效,还需要在 Spring Boot 的主类上添加 @EnableAsync 注解。
```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@EnableAsync
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
```
这样配置之后,定时任务将在独立的线程中异步执行,不会阻塞当前线程。
@scheduled注解
@Scheduled注解是一种任务自动化调度的注解。它可以用来指定任务的执行时间和频率。其中,@Scheduled(fixedDelay = 5000)表示任务会在上一个任务执行完成后延时5000毫秒后再次执行。而@Scheduled(cron="0 0 2 2 * ? *")表示任务会在每月二号凌晨两点执行。另外,@Scheduled(cron= "0 0 0 0 * 2#3 ")表示任务会在每月的第三个周一执行。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [@Scheduled()注解以及cron表达式详解](https://blog.csdn.net/qq_37807821/article/details/117463611)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文