java 定时器任务模板
1.该定时任务是基于web.xml的监听机制listener来实现的
建立监听类:
NFDFlightDataTaskListener.java
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class NFDFlightDataTaskListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
new TimerManager(); //定时器配置方法
}
public void contextDestroyed(ServletContextEvent event) {
}
}2.web.xml中配置监听配置
<listener>
<listener-class>
相对路径.NFDFlightDataTaskListener
</listener-class>
</listener>3.定时器配置方法:
TimerManager.java<br /><br />
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
public class TimerManager {
//配置时间间隔
private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
public TimerManager() {
Calendar calendar = Calendar.getInstance();
//每日0:00执行方法,循环执行
calendar.set(Calendar.HOUR_OF_DAY, 0); //时,24小时制
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 timer = new Timer(); //Timer相当于一个调度器,调度继承TimerTask的方法类,是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。 //NFDFlightDataTimerTask.java需要执行的方法 <br /> NFDFlightDataTimerTask task = new NFDFlightDataTimerTask(); <br /><br /> //安排指定的任务在指定的时间开始进行重复的固定延迟执行。 <br /> timer.schedule(task,date,PERIOD_DAY); <br /> } <br /><br /><br /> // 设置每次执行时间间隔,24小时便是每天执行 <br /> public Date addDay(Date date, int num) { <br /> Calendar startDT = Calendar.getInstance(); <br /> startDT.setTime(date); <br /> startDT.add(Calendar.DAY_OF_MONTH, num); <br /> return startDT.getTime(); <br /> } <br />}<br />4.编写定时执行方法
NFDFlightDataTimerTask.java <br /><br />此类继承了TimerTask<br /><br />TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。
<em> </em>
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.TimerTask;
@Component
public class NFDFlightDataTimerTask extends TimerTask {
@Override
public void run() {
try{<br />
//编写需要执行的方法<br /><br />
} catch ( Exception e ) {
log.info("系统异常"+e.getMessage());
}
}
} 相关推荐
九天银河技术 2020-11-11
zhangjie 2020-11-11
Crazyshark 2020-11-13
步知道 2020-10-27
李轮清 2020-09-15
85251846 2020-09-14
wangpaiyonghu 2020-06-28
jackalwb 2020-06-14
yhljxy 2020-06-14
myveer 2020-06-14
xiaobaif 2020-06-14
klarclm 2020-06-13
songshijiazuaa 2020-06-13
TMD咯MySQL 2020-06-12
archive 2020-06-12
清风徐来水波不兴 2020-06-09