定时器注解 @Scheduled 使用 AND 任务开启与关闭
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 }
赵磊