SpringBoot (六) :SpringBoot定時器實現(簡單入門)
阿新 • • 發佈:2019-02-01
說在前面
定時任務一般會存在中大型企業級專案中,為了減少伺服器、資料庫的壓力往往會採用時間段性的去完成某些業務邏輯。比較常見的就是金融服務系統推送回調,一般支付系統訂單在沒有收到成功的回撥返回內容時會持續性的回撥,這種回撥一般都是定時任務來完成的。
SpringBoot為我們內建了定時任務,我們只需要一個註解(@Scheduled)就可以開啟定時為我們所用了。
目錄結構
程式碼實現
1、pom.xml檔案
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.fit</groupId>
<artifactId>SpringBootJob</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- SpringBoot父類依賴引用 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<!-- SpringBoot web 元件 -->
<dependencies>
<dependency >
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
2、Scheduler檔案
@Component
public class Scheduler {
@Scheduled(cron="0 0/1 * * * ?")
public void statusCheck() {
System.out.println("每1分鐘執行一次");
}
@Scheduled(fixedRate=10000)
public void testTasks() {
System.out.println("每10秒執行一次。");
}
}
3、APP檔案
@SpringBootApplication(scanBasePackages="com.fit.job")
@EnableScheduling
public class APP {
public static void main(String[] args) {
SpringApplication.run(APP.class, args);
}
}
注:@SpringBootApplication(scanBasePackages=”com.fit.job”)中“scanBasePackages=”com.fit.job””表示掃描的包,如果是同包下可以不寫,預設掃描當前目錄
4、執行,輸出結果