Spring——自动执行定时任务和JAVA需调用执行的定时任务

项目在启动执行时会自动加载定时的java文件

spring.xml

<!-- id名称,class路径,init-method初始化函数,destroy-method销毁函数 -->
<bean id="checkFileTimeOut" class="com.adtec.starring.init.ChkPendFile" init-method="init" destroy-method="stop"/>

ChkPendFile.java

import java.util.Timer;
import java.util.TimerTask;

public class ChkPendFile {
    private Timer timer;
    
    /**
     * 初始化定时器,每24小时执行一次
     */
    public void init() {
        timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            public void run() {
                //需要定时执行的方法或方法体
                
            }
        }, 50, 24 * 60 * 60 * 1000);//第一次延迟50ms执行,后每隔24小时执行一次
    }
    
    /**
     * 定时器停止
     */
    public void stop() {
        timer.cancel();
    }
}

定时方法参考:https://www.cnblogs.com/it-mh/articles/10097335.html

 

 

JAVA--需调用执行的定时任务

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

public class XXXMonitor {
    private static XXXMonitor xxxMonitor = null;
    public static XXXMonitor getInstance(){
        if(null == xxxMonitor){
            return new XXXMonitor();
        }
        return xxxMonitor;
    }
    /**
     * 启动自动任务
     */
    public void startMonitor(){
       Timer timer = new Timer();
       //执行定时任务,第一次延迟50ms执行,后每隔1分钟执行一次
       timer.scheduleAtFixedRate(new Monitor(), 50, 1 * 60 * 1000);
       System.out.println("=====定时任务启动成功=====");
    }
    
}

class Monitor extends TimerTask{

    @Override
    public void run() {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("定时任务执行一次"+df.format(new Date()));
    }
    
}

 

posted @ 2018-12-12 13:38  !O0O!  阅读(836)  评论(0)    收藏  举报