springboot中創建定時任務主要有兩種方式:1.基於註解(@Scheduled);2.基於接口(SchedulingConfigurer)。方式1適用於靜態定時任務,方式二適用於動態定時任務(即定時時間是可以配置的)。
一、靜態定時任務
基於註解(@Scheduled)實現,代碼如下:
//注入容器
@Component
//開啓定時任務
@EnableScheduling
public class Scheduler {
@Scheduled(cron = "0/5 * * * * ?")
private void testTask(){
System.out.println("執行定時任務!"+ LocalDateTime.now());
}
}
靜態定時任務很方便,但是存在缺陷,當我們需要調整執行週期的時候,需要重啓應用才能生效,這樣對於不能停止的業務不太方便。爲了達到實時生效的效果,可以採用接口方式來實現定時任務。
2.動態定時任務
基於接口類SchedulingConfigurer實現,