定时器

定时器

思路:将java定时器放到utils包里面去,然后启动我的启动类(注意,不是定时器类),等待启动完之后,在起定时器类即可。

 

package com.cx.core.utils;

import cn.hutool.http.HttpUtil;
import java.util.Timer;
import java.util.TimerTask;

public class MyTimerTask {     //我的定时器
   public static void main(String[] args) {
       // 定义一个任务
       TimerTask timerTask = new TimerTask() {  //new一个定时器任务
           @Override     //重写定时器里面的run方法
           public void run() {
               HttpUtil.get("http://localhost:8085/insertDeviceR");    //路径就是你需要定时的任务
          }
      };
       // 计时器
       Timer timer = new Timer();    //new一个定时器        
       // 添加执行任务(延迟 1s 执行,每 3s 执行一次)
       timer.schedule(timerTask, 1000, 600000);  //定义10分钟执行一次。时间这里设置。
  }
}

解释:定时器,被设置的任务,跑完就会停止,但是数据会有更新,这里过十分钟就会去重启服务。

 

 

高级点的样子

package com.cx.core.utils;

import cn.hutool.http.HttpUtil;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class MyTimerTask {
   public static void main(String[] args) {

       //设定时间格式,这里取时分秒
       SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");   //确保时间格式
       try {
           //获取当前系统日期的时分秒转换为指定格式
           String nowTime=sdf.format(new Date()); //将当前时间格式化成字符串
           System.out.println("当前系统日期的时分秒====="+nowTime);   //将格式化的时间输出
           //将当前日期字符串再转为日期类型。
           Date nowDate = sdf.parse(nowTime);  //转为日期
           //如果当前日期的时间在早上8点到晚上10点之间,那么就处理我们的业务逻辑。
           if(nowDate.before(sdf.parse("20:00:00")) && nowDate.after(sdf.parse("05:30:00"))){
               // 定义一个任务
               TimerTask timerTask = new TimerTask() {
                   @Override
                   public void run() {
                       HttpUtil.get("http://localhost:8082/insertbtoStationView");
                  }
              };
               // 计时器
               Timer timer = new Timer();
               // 添加执行任务(延迟 1s 执行,每 3s 执行一次)
               timer.schedule(timerTask, 1000, 600000);
          }else {
               System.out.println("不在规定时间内");
          }
      } catch (Exception e) {
           e.printStackTrace();
      }
  }
}


使用,可以放入main函数当中,也可以放到启动类下面去,这样不要不断就会一直运行
 
posted @ 2022-08-12 16:00  锦书南辞  阅读(29)  评论(0编辑  收藏  举报