定时器注解 @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 }
posted @ 2019-12-13 15:31  MyKatana  阅读(5658)  评论(1编辑  收藏  举报