1 @Component 2 @Slf4j 3 //配置文件注入注解 4 @PropertySource("classpath:/**.properties") 5 public class TimerController { 6 @Value("${SEND_TEL}") 7 private String tel; 8 @Value("${scheduled.enable}") //配置文件中定時任務開關(true 或 false) 9 private String scheduledEnable; 10 public void timerTask(){ 11 12 13 try { 14 //如有多個值且需要一個一個取出再使用則需轉換遍歷 15 /**取出屬性文件中的電話號並加入list**/ 16 String [] c=tel.split(","); 17 List<String> list = new ArrayList<>(); 18 for(int i=0;i<c.length;i++){ 19 list.add(c[i]); 20 // System.out.println(list.get(i)); 21 SendSmsResponse response = SmsUtils.sendSms(list.get(i),9999); 22 } 23 } catch (ClientException e) { 24 e.printStackTrace(); 25 } 26 } 27 //* * 8,10,14,16 * * ? 28 /**每天8、10、14、16四個時間點執行任務**/ 29 //${CRON} CRON為配置文件中的key CRON=0 0 8,10,14,16 * * ? 30 @Scheduled(cron="${CRON}") 31 public void task(){
//判斷定時任務開關屬性(true:開啟 false:關閉) 32 if(!Boolean.parseBoolean(scheduledEnable)){ 33 log.info("定時器已關閉!"); 34 return; 35 } 36 timerTask(); 37 log.info("定時器已開啟!"); 38 } 39 }
