spring boot系列4-定時任務-springboot自帶的scheduled超級簡單
阿新 • • 發佈:2018-11-11
需求:建立一個每天凌晨0點執行的定時任務
1.建立任務
/**
* @author 天空藍藍的
*/
@Slf4j
@EnableScheduling
@Component
public class MyTask {
@Async
@Scheduled(cron = "0 0 0 * * ?")
public void delEveryDay() throws SchedulerException, InterruptedException {
log.info("每天凌晨0點開始執行任務");
//業務程式碼
}
}
@EnableScheduling 啟用定時任務,可以新增到Application類上 ,此處新增到MyTask類上。
@Scheduled 新增到方法上 ,表示要執行的方法
@Async 並行執行(非同步的),如果想序列執行無需新增
cron表示執行的條件,此處為每天凌晨0點執行
2.Application入口類
@SpringBootApplication
@EnableAsync
public class Start {
public static void main(String[] args) {
SpringApplication.run(Start.class, args);
}
}
@EnableAsync 開啟並行執行(非同步的),如果想序列執行無需開啟
3. 擴充套件
此外我們還可以這樣實現定時任務
例如我們想5秒執行一次任務,程式碼如下
@Scheduled(fixedDelay = 5000)
public void towTask(){
System.out.println("5秒後執行定時任務1");
}
4.專案經驗溫馨提醒
我們在建立spring的定時任務需要遵循這些規則否則定時任務不會生效 1.類需要使用@Component註解 2.定時任務方法需要註解@Scheduled並且方法不能有返回值和引數