Spring Boot 多个同类定时任务配置详解
在 Spring Boot 中,可以使用@EnableScheduling 注解来启用定时任务功能。然后,可以使用@Scheduled 注解来标记定时任务方法。
如果需要配置多个同类的定时任务,可以使用@Configuration 注解来创建一个配置类,然后在配置类中定义多个定时任务方法。可以使用@Bean 注解来将定时任务方法作为一个Bean进行注册。
下面是一个示例代码:
@Configuration
@EnableScheduling
public class TaskConfig {
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
taskScheduler.setPoolSize(10);
return taskScheduler;
}
@Bean
public MyTask myTask1() {
return new MyTask('Task 1');
}
@Bean
public MyTask myTask2() {
return new MyTask('Task 2');
}
}
@Component
public class MyTask {
private String name;
public MyTask(String name) {
this.name = name;
}
@Scheduled(fixedRate = 1000)
public void run() {
System.out.println('Running task: ' + name);
}
}
在上面的示例中,TaskConfig 类使用@Configuration 注解来标记为配置类,并使用@EnableScheduling 注解来启用定时任务功能。在配置类中,通过@Bean 注解将TaskScheduler 和两个MyTask 定时任务方法注册为 Bean。
MyTask 类使用@Component 注解将其标记为一个组件,然后使用@Scheduled 注解来标记run 方法为一个定时任务方法,通过fixedRate 属性指定定时任务的执行频率。
在配置类中,可以自定义TaskScheduler 的配置,比如设置线程池大小等。
以上示例中的MyTask 定时任务方法每隔1秒打印一次任务名称。可以根据实际需求修改定时任务的执行逻辑。
总结:
使用 @EnableScheduling、@Scheduled、@Configuration 和 @Bean 注解,可以轻松地在 Spring Boot 中配置多个同类定时任务。根据实际需求,可以灵活定制任务逻辑和执行频率。
原文地址: https://www.cveoy.top/t/topic/qEeh 著作权归作者所有。请勿转载和采集!