spring Boot 中使用线程池异步执行多个定时任务
在启动类中添加注解@EnableScheduling
第一步添加注解,这样才会使定时任务启动
配置自定义线程池
@Configuration
public class ScheduleConfiguration implements SchedulingConfigurer {
@Value("${schedule.max-threads:20}")
private int coreSize;
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(this.getTaskScheduler());
}
private ThreadPoolTaskScheduler getTaskScheduler() {
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
taskScheduler.setPoolSize(this.coreSize);
taskScheduler.setThreadNamePrefix("schedule-pool-");
taskScheduler.afterPropertiesSet();
return taskScheduler;
}
编写定时任务
@Scheduled(cron = "0 0/30 * * * ? ")//定时任务的执行时间ian
private void updateChapterHotValue() {
//自己的定时任务业务逻辑
}