您的位置:首页 > 编程语言 > Java开发

java 定时任务,每日运行和每小时运行。

2016-11-17 14:08 316 查看
注释部分是每日运行代码,Calendar里填写几点几分运行。

/**

 *

 * @since 2016-10-25

 */

public class TimeManager extends HttpServlet{

    //时间间隔

     private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;     //每日执行任务

     private static final long PERIOD_MIN= 60* 60 * 1000; //没小时执行任务

     private Timer timer;

    

     public void init(ServletConfig config) throws ServletException {

            timer = new Timer(true);

            Calendar calendar = Calendar.getInstance();              

            /*** 定制每日执行方法 ***/

//            calendar.set(Calendar.HOUR_OF_DAY, 14);

//            calendar.set(Calendar.MINUTE, 0);

//            calendar.set(Calendar.SECOND, 0);

              

            Date date=calendar.getTime(); //第一次执行定时任务的时间

              

            //如果第一次执行定时任务的时间 小于 当前的时间

            //此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。循环执行的周期则以当前时间为准

//            if (date.before(new Date())) {

//               date = this.addDay(date, 1);
//            }

           //启动备份任务   没小时运行

//         timer.schedule(new AirRun(),date, PERIOD_DAY);  

            //启动备份任务   没小时运行

            timer.schedule(new AirRun(),date, PERIOD_MIN);   

            

        }

         // 增加或减少天数

        public Date addDay(Date date, int num) {

              Calendar startDT = Calendar.getInstance();

              startDT.setTime(date);

              startDT.add(Calendar.DAY_OF_MONTH, num);

              return startDT.getTime();

        }
}

public class AirRun extends TimerTask{

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    

    public void exchange()

    {

        try {

            System.out.println("开始读取数据!!"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));

            System.out.println("执行方法");

            System.out.println("结束读取数据!!"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));

        } catch (Exception e) {

            System.out.println("定时器定时信息失败。");

        }

    }

    

    @Override

    public void run() {

        exchange();       

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: