SpringBoot【注解 01】@Scheduled实现定时任务的串行和并行执行
在Spring Boot中,使用@Scheduled
注解可以很方便地实现定时任务。为了控制定时任务的并行执行,可以使用@EnableScheduling
和@Async
注解结合使用。
以下是一个使用@Scheduled
实现定时任务的例子,并展示如何控制定时任务的串行和并行执行。
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
@EnableScheduling
@Service
public class ScheduledTaskService {
// 定时任务执行方法1 - 串行执行
@Scheduled(fixedRate = 1000)
public void taskOne() {
System.out.println("Task One executed serially");
// 执行任务内容
}
// 定时任务执行方法2 - 并行执行
@Async
@Scheduled(fixedRate = 1000)
public void taskTwo() {
System.out.println("Task Two executed in parallel");
// 执行任务内容
}
}
在上述代码中:
@EnableScheduling
开启定时任务的支持。taskOne
方法使用@Scheduled
注解,并且没有使用@Async
,表示这个任务将会按照定时策略串行执行。taskTwo
方法也使用@Scheduled
注解,但添加了@Async
注解,表示这个任务将会异步并行执行。
要使@Async
注解生效,你需要在Spring Boot的主类或配置类中启用异步支持,例如:
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableAsync
public class AsyncConfig {
}
通过这种方式,你可以控制定时任务的串行执行和并行执行。
评论已关闭