一、新建一個計劃任務類(只能和主類平級或在主類的下級) php
import java.text.SimpleDateFormat; import java.util.Date; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class ScheduledTasks { private static final Logger logger = LoggerFactory.getLogger(ScheduledTasks.class); private static final SimpleDateFormat dataFromat = new SimpleDateFormat("HH:mm:ss"); @Scheduled(fixedRate = 1000) public void reportCurrent(){ logger.info("如今時間:{}",dataFromat.format(new Date())); } }
本示例中使用的是 fixedRate函數,它指定的是從調用開始時間到指定時間以後,單位毫秒。還有 fixedDelay指定從java
完成任務測量的時間間隔。還能夠指定具體時間,使用 Scheduled(cron="... ")spring
cron參數說明: 0 0 10,14,16 * * ? 天天上午10點,下午2點,4點函數
0 0/30 9-17 * * ? 朝九晚五工做時間內每半小時測試
0 0 12 ? * WED 表示每一個星期三中午12點
"0 0 12 * * ?" 天天中午12點觸發orm
其中 按順序依次爲:blog
秒(0~59)get
分鐘(0~59)io
小時(0~23)編譯
天(月)(0~31,可是你須要考慮你月的天數)
月(0~11)
天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
7.年份(1970-2099)
二、啓用定時任務
當上面一切被設置好以後,還須要在主類中加入 @EnableScheduling 註解來啓動任務,不然定時任務不會被執行
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling; @EnableScheduling //必須加此註解 public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
三、啓動,當一切編譯完畢時,能夠啓動來測試了,在類中右鍵-->RunAs-->SpringBoot App,一切正常就會看到以下結果