springboot定時任務@Scheduled
1.多個任務單執行緒執行(預設)
@Component
@EnableScheduling // 開啟定時任務,(這個註解用在啟動類上的話,就不用每個task類都寫一句@EnableScheduling
public class Task {
@Scheduled(cron = "0/60 * * * * ?")//60s執行一次
private void task1(){
System.out.println("定時任務一,恭喜發財~" + LocalDateTime.now().toLocalTime() + "," + Thread.currentThread().getName());
}
@Scheduled(cron = "0/60 * * * * ?")//60s執行一次
private void task2(){
System.out.println("定時任務二,恭喜發財~" + LocalDateTime.now().toLocalTime() + "," + Thread.currentThread().getName());
}
}
2.多執行緒非同步執行(註解@Async)
@Component
@EnableScheduling
@EnableAsync // 開啟多執行緒
public class Task {
@Async
@Scheduled(cron = "0/30 * * * * ?")
public void task1(){
System.out.println("定時任務一,恭喜發財~" + LocalDateTime.now().toLocalTime() + "," + Thread.currentThread().getName());
}
@Async
@Scheduled(cron = "0/30 * * * * ?")
public void task2(){
System.out.println("定時任務二,恭喜發財~" + LocalDateTime.now().toLocalTime() + "," + Thread.currentThread().getName());
}
}
在類上加註解@EnableAsync,然後在任務方法上加註解@Async
執行之後,發現就兩個任務,執行著執行著幾分鐘後執行緒數有一百多個了,又改成下面這樣
3.設定非同步執行執行緒池
程式碼和2一樣,多寫一個配置類
@Configuration
public class TaskPoolConfig {
//定義執行緒池
@Bean("taskExecutor")
public Executor taskExecutor(){
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setMaxPoolSize(20);
executor.setThreadNamePrefix("taskExecutorXXX-");
//還有很多屬性可以設定
return executor;
}
}
寫完配置類後在@Async註解中指定執行緒池名即可,@Async("taskExecutor")(但是我發現不寫也行……)
其它,還有動態設定定時任務的寫法,以後補充……
相關文章
- SpringBoot 定時任務ScheduledSpring Boot
- @Scheduled 定時任務
- SpringBoot執行定時任務@ScheduledSpring Boot
- @Scheduled 定時任務自定義
- SpingBoot @Scheduled定時任務boot
- springcloud +springboot 社交電子商務-定時任務@ScheduledGCCloudSpring Boot
- 【親測有效】【定時】定時任務 @Scheduled(cron = "0 0 21 * * ?") 【Scheduled失效】
- 定時任務@Scheduled引數詳解
- 玩轉SpringBoot之定時任務@Scheduled執行緒池配置Spring Boot執行緒
- spring3.2 @Scheduled註解 定時任務Spring
- 你不知道的Scheduled定時任務騷操作
- 使用spring @Scheduled註解執行定時任務、Spring
- SpringBoot定時任務Spring Boot
- springboot:定時任務Spring Boot
- Spring 定時任務Scheduled 開發詳細圖文Spring
- Spring Boot系列之使用@Scheduled實現定時任務Spring Boot
- springboot(九):定時任務Spring Boot
- springboot定時任務之旅Spring Boot
- Spring Boot之使用Scheduled註解實現定時任務Springboot
- SpringBoot與非同步任務、定時任務、郵件任務Spring Boot非同步
- SpringBoot整合Quartz定時任務Spring Bootquartz
- Spring Boot入門(三):使用Scheduled註解實現定時任務Spring Boot
- springboot Quartz 定時任務工具類Spring Bootquartz
- SpringBoot系列——動態定時任務Spring Boot
- SpringBoot如何實現定時任務Spring Boot
- Springboot-之定時任務,啟動執行任務Spring Boot
- spring如何設定定時任務詳解(@Scheduled)Spring
- SpringBoot第十七篇:定時任務Spring Boot
- java springboot 實現定時器任務JavaSpring Boot定時器
- springboot定時任務優雅退出方案Spring Boot
- SpringBoot原始碼解析-Scheduled定時器的原理Spring Boot原始碼定時器
- 定時任務
- SpringBoot之非同步、定時、郵件任務Spring Boot非同步
- SpringBoot踩坑日記-定時任務不定時了?Spring Boot
- 直播網站原始碼,使用Scheduled做定時任務出現Autowired注入空指標網站原始碼指標
- 定時任務scheduler
- At 、Crontabl定時任務
- crontab定時任務