java 定时器任务模板
2018-06-27 10:03:00来源:未知 阅读 ()
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
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需要执行的方法
NFDFlightDataTimerTask task = new NFDFlightDataTimerTask();
//安排指定的任务在指定的时间开始进行重复的固定延迟执行。
timer.schedule(task,date,PERIOD_DAY);
}
// 设置每次执行时间间隔,24小时便是每天执行
public Date addDay(Date date, int num) {
Calendar startDT = Calendar.getInstance();
startDT.setTime(date);
startDT.add(Calendar.DAY_OF_MONTH, num);
return startDT.getTime();
}
}
4.编写定时执行方法
NFDFlightDataTimerTask.java
此类继承了TimerTask
TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。
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{
//编写需要执行的方法
} catch ( Exception e ) { log.info("系统异常"+e.getMessage()); } } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Python3中input的用法
下一篇:Java 基础总结
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash