Spring Boot中引入定時任務
對於工程中需要定時執行的一些任務,例如每天0點向資料庫插入資料,每隔五分鐘同步一次快取等,都可以通過Spring Boot的定時任務來解決。
pom.xml新增依賴
依賴只需要spring-boot-starter
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
在主類中啟用定時功能
在主類前新增@EnableScheduling
來啟用定時功能:
@SpringBootApplication
@EnableScheduling
public class XXXApplication {
public static void main(String[] args) {
SpringApplication.run(XXXApplication.class, args);
}
}
建立定時任務類
可以為定時任務單獨建立一個資料夾,在其下新增一個java類:
@Component
public class ScheduleTask {
// 每天01:30:00執行定時任務
@Scheduled(cron="00 30 01 * * *")
private void doMyScheduleTask(){
System.out.println("this is a scheduler task for day");
}
// 每隔1秒執行一次定時任務
@Scheduled(fixedRate=1000)
private void doMyScheduleTask2(){
System.out.println("this is a scheduler task for second");
}
}
其中:
- 類必須使用
@Component
註解來注入到Spring中。 - 函式必須使用
@Scheduled
註解來標記為定時執行函式。 @Scheduled
註解還用於設定定時間隔。- 使用
@Component
和@Scheduled
註解Spring即可實現定時執行任務功能,不需要進行任何額外設定。
關於定時間隔:
@Scheduled(cron="00 30 01 * * *")
:每天01:30:00執行定時任務。其時間設定為:秒 分 時 日 月 年。*表示所有。@Scheduled(fixedRate=1000)
:每隔1秒執行一次定時任務。無論上次任務是否已執行完。@Scheduled(fixedDelay=1000)
:上次任務執行完成後,等待1秒再執行一次定時任務。@Scheduled(initalDelay=5000, fixedRate=1000)
:第一次任務延遲5秒執行,之後每隔1秒執行一次定時任務。
相關文章
- spring boot中的定時任務Spring Boot
- Spring Boot 配置 Quartz 定時任務Spring Bootquartz
- Spring Boot 中實現定時任務的兩種方式Spring Boot
- Spring boot 非同步/定時任務/郵件Spring Boot非同步
- spring boot 系列之八:SpringBoot處理定時任務Spring Boot
- Spring Boot 實現定時任務的 4 種方式Spring Boot
- Spring Boot系列之使用@Scheduled實現定時任務Spring Boot
- Spring Boot應用中進行任務排程Spring Boot
- Spring Boot中得定時任務執行一段時間後突然停了Spring Boot
- Spring Boot之使用Scheduled註解實現定時任務Springboot
- Spring Boot 定時任務的技術選型對比Spring Boot
- Spring / Spring boot 非同步任務程式設計 WebAsyncTaskSpring Boot非同步程式設計Web
- Spring Boot整合quartz實現定時任務並支援切換任務資料來源Spring Bootquartz
- .Net Core 3.1瀏覽器後端服務(五) 引入定時任務Quartz.Net瀏覽器後端quartz
- Spring Boot @Async 非同步任務執行Spring Boot非同步
- Spring - Task定時任務Spring
- Spring Boot入門(三):使用Scheduled註解實現定時任務Spring Boot
- Spring Boot 系統啟動任務定義Spring Boot
- Spring Boot使用執行緒池處理事務任務Spring Boot執行緒
- spring定時任務註解Spring
- spring-boot-route(二十一)quartz實現動態定時任務Springbootquartz
- Spring Boot2 系列教程(十六)定時任務的兩種實現方式Spring Boot
- Spring Boot 2.x基礎教程:使用Elastic Job實現定時任務Spring BootAST
- 定時任務@Scheduled引數詳解
- Linux系統中延時任務及定時任務Linux
- 實戰Spring Boot 2.0系列(六) - 單機定時任務的幾種實現Spring Boot
- Spring排程定時任務的方式Spring
- Spring定時任務高階使用篇Spring
- Spring之定時任務基本使用篇Spring
- Spring Boot Quartz 分散式叢集任務排程實現Spring Bootquartz分散式
- Spring Boot 引數校驗Spring Boot
- Spring Boot 引數轉換Spring Boot
- 深入探討Spring Boot中的引數傳遞Spring Boot
- Spring Task定時任務的配置和使用Spring
- spring如何設定定時任務詳解(@Scheduled)Spring
- 在spring boot中3分鐘上手分散式任務排程系統xxl-jobSpring Boot分散式
- Spring Boot中實現輸入引數驗證教程Spring Boot
- Spring Boot中有多個@Async非同步任務時,記得做好執行緒池的隔離!Spring Boot非同步執行緒