zoukankan      html  css  js  c++  java
  • Java学习笔记之:Java 定时任务

    一、介绍

    在应用里经常都有用到在后台跑定时任务的需求。比如网络运营商会在每个月的一号对数据进行一次统计。在java中我们可以继承timertask类来实现定时任务。

    二、笔记

    /**
     * 定时任务
     * 1.继承timertask(runable)的子类
     * 2.重写run方法
     * 3.在run方法中编写自己的业务
     * 4.通过timer类提供的方法来启动定时任务
     * @author HuTiger
     *
     */
    public class TimeTask extends TimerTask {
    
        private Timer timer;
        private TimerTask task;
    
        public static void main(String[] args) {
            TimeTask t = new TimeTask();
            // t.start();
            SimpleDateFormat sdDateFormat = new SimpleDateFormat(
                    "yyyy-MM-dd hh:mm:ss");
            Date date;
            try {
                date = sdDateFormat.parse("2016-09-23 15:32:00");
                t.start(date);
            } catch (ParseException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
    
        }
    
        @Override
        public void run() {
            // TODO 自动生成的方法存根
    
        }
    
        public void start(Date date) {
            if (timer == null) {
                timer = new Timer();
            }
            if (task == null) {
                task = new myTimer();
            }
            timer.schedule(task, date);
            
            //在程序启动后,一定时间内开始执行
            timer.schedule(task, 5000,1000);
            //如果设置的时间已经过时,那么将从当前时间开始运行
            timer.schedule(task, date,1000);
            //如果设置的时候已经过时,那么将从设置时间开始执行,把之前没有完成的补齐
            timer.scheduleAtFixedRate(task, date, 1000);
        }
    
        public void stop() {
            if (task != null) {
                task.cancel();
            }
            if (timer != null) {
                timer.cancel();
            }
            task=null;
            timer=null;
        }
    }
    
    class myTimer extends TimerTask {
        @Override
        public void run() {
            // TODO 自动生成的方法存根
            System.out.println("定时执行的任务");
        }
    }
  • 相关阅读:
    【php】目录、路径和文件 操作
    [PHP100]留言板(一)
    Software--Architecture--Design
    Coursera--Deep Learning--吴恩达 深度学习笔记 2017.12.10
    DeepLearning.ai--吴恩达--Chapter 2_Vecterization
    Datastructure--学习资源 Center
    leetcode--Algorithm--Array
    Coursera--DataStructure-加州理工大学圣地亚哥分校课程
    Coursera--Deep Learning--吴恩达 深度学习笔记 2017.12.03
    Data Structure & Algorithm
  • 原文地址:https://www.cnblogs.com/huguodong/p/5905693.html
Copyright © 2011-2022 走看看