解決定時任務@Scheduled的阻塞問題
阿新 • • 發佈:2021-02-03
@Scheduled採用單執行緒處理定時任務,不同的定時任務之間相互交錯執行,由於單執行緒的限制會出現不同的阻塞情況,直接在專案中新增如下配置類即可解決阻塞問題:
@Configuration
public class ScheduleConfig implements SchedulingConfigurer {
/*如果採用註解@Asnyc的方式其預設執行緒池大小為100,會浪費資源*/
@Bean
public Executor taskExecutor() {
//指定定時任務執行緒數量,可根據需求自行調節
return Executors.newScheduledThreadPool(5);
}
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
scheduledTaskRegistrar.setScheduler(taskExecutor());
}
}