java中实现定时任务每天规定时间执行任务一次
第一步
package com.eh.util;import java.util.Calendar;
import java.util.Date;
import java.util.Timer;/*** java定时任务,每天定时执行任务* @author wls**/
public class TimerManager {//时间间隔private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;public TimerManager() {Calendar calendar = Calendar.getInstance(); /*** 定制每日2:00执行方法 ***/calendar.set(Calendar.HOUR_OF_DAY, 16);calendar.set(Calendar.MINUTE, 10);calendar.set(Calendar.SECOND, 0);Date date=calendar.getTime(); //第一次执行定时任务的时间System.out.println(date);System.out.println("before 方法比较:"+date.before(new Date()));//如果第一次执行定时任务的时间 小于 当前的时间//此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。循环执行的周期则以当前时间为准if (date.before(new Date())) {date = this.addDay(date, 1);System.out.println(date);}Timer timer = new Timer();NFDFlightDataTimerTask task = new NFDFlightDataTimerTask();//安排指定的任务在指定的时间开始进行重复的固定延迟执行。timer.schedule(task,date,PERIOD_DAY);}// 增加或减少天数public Date addDay(Date date, int num) {Calendar startDT = Calendar.getInstance();startDT.setTime(date);startDT.add(Calendar.DAY_OF_MONTH, num);return startDT.getTime();}
}
第二部
package com.eh.util;import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimerTask;/*** 在 TimerManager 这个类里面,大家一定要注意 时间点的问题。如果你设定在凌晨2点执行任务。但你是在2点以后*发布的程序或是重启过服务,那这样的情况下,任务会立即执行,而不是等到第二天的凌晨2点执行。为了,避免这种情况*发生,只能判断一下,如果发布或重启服务的时间晚于定时执行任务的时间,就在此基础上加一天。* @author wls**/
public class NFDFlightDataTimerTask extends TimerTask {private static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");@Overridepublic void run() {try {//在这里写你要执行的内容System.out.println("执行当前时间"+formatter.format(Calendar.getInstance().getTime()));} catch (Exception e) {System.out.println("-------------解析信息发生异常--------------");}}}
第三部
package com.eh.util;import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;public class NFDFlightDataTaskListener implements ServletContextListener {public void contextInitialized(ServletContextEvent sce) {new TimerManager();}public void contextDestroyed(ServletContextEvent sce) {// TODO Auto-generated method stub}}
第四步:配置web.xml文件
<!--NFDFlightDataTaskListener 监听器-->
<listener><listener-class>com.eh.util.NFDFlightDataTaskListener</listener-class>
</listener>
java中实现定时任务每天规定时间执行任务一次相关推荐
- java中写定时任务
java中得定时任务,7种使用方式 1.使用普通thread实现 @Testpublic void test1() { // 单位: 毫秒final long timeInterval = 1000; ...
- java 静态块初始化_简单了解java中静态初始化块的执行顺序
这篇文章主要介绍了简单了解java中静态初始化块的执行顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在java中,其应该是先于所有的方法执行. ...
- @Java中实现定时任务
业务场景 定时任务是每个业务常见的需求,比如每分钟扫描超时支付的订单,每小时清理一次数据库历史数据,每天统计前一天的数据并生成报表等. 项目中关于数据库过期数据的清除 项目中如果数据库中库存发生了更改 ...
- java中子类继承父类程序执行顺序问题
为什么80%的码农都做不了架构师?>>> Java中,new一个类的对象,类里面的静态代码块.非静态代码.无参构造方法.有参构造方法.类的一般方法等部分,它们的执行顺序相对来说 ...
- java类初始化顺序_「漫画」Java中的父子类的执行顺序到底是怎么一回事?
----下课后---- 结论 类的加载顺序. (1) 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法) (2) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法 ) (3) ...
- java 中的finally 语句块执行顺序
2019独角兽企业重金招聘Python工程师标准>>> 参考博文1:https://www.ibm.com/developerworks/cn/java/j-lo-finally/ ...
- Java 中 finally 与 return 的执行顺序详解
java方法是在栈幀中执行,栈幀是线程私有栈的单位,执行方法的线程会为每一个方法分配一小块栈空间来作为该方法执行时的内存空间,栈幀分为三个区域: 1 . 操作数栈,用来保存正在执行的表达式中的操作数, ...
- Java中实现定时任务的3种方法!
今天我们不用任何框架,用最朴素的 Java API 来实现定时任务,本文会介绍 3 种实现方案,我们一起来看... 1. sleep 这也是我们最常用的 sleep 休眠大法,不只是当作休眠用,我们还 ...
- java中等待所有线程都执行结束
使用CountDownLatch,这其实是最优雅的写法了,每个线程完成后都去将计数器减一,最后完成时再来唤醒 @Test public void testThreadSync3() { final V ...
最新文章
- 成熟的AI应该自己写代码,IBM发布5亿行代码数据集,包含55种语言|开源
- 关于MNIST数据集的处理
- java 计划日视图,GitHub - sddysz/calendarSchedule: 日程表,仿滴答清单,包含日视图、三日视图、周视图、月视图、列表视图、同步手机系统日程、添加日程...
- 4万字长文ClickHouse应用实战-物化视图在微信的实践
- python+selenium个人学习笔记10-调用JavaScript和截图
- 二级级联菜单---纯js实现
- 试题 基础练习 特殊的数字
- mac10.12 安装mysql_在mac os10.12上安装mysql5.7.18
- php strtoup,PHP 7 的几处函数安全小变化
- mac下配置eclipse的maven环境
- 读他:男人最怕听的十句话
- 一步一步学Remoting之二:激活模式
- 国产卫星高分四号(GF4)预处理(辐射定标)
- NGUI常见功能解释
- PHP框架高级编程——应用Symfony、CakePHP和Zend
- 树莓派 3B+ HDMI 分辨率改不了 和一些坑坑洼洼
- 《测绘综合能力》——工程测量
- 公司算法面试笔试题目集锦,个人整理,不断更新中
- 基础-使用视图(CREATE VIEW....AS....)
- 逻辑与和或||的执行顺序
热门文章
- 12000字解读安踏:DTC中国化的“热血战纪”
- 微信公众号关注/取消关注事件推送开发记录
- python中函数定义的关键字_python中定义函数的关键字是什么
- 查看SEM竞价外地排名的方法
- hell脚本案例(一):常见运维面试题
- 《写给大家看的设计书》——从iOS7的扁平化谈起
- 【CTF】Misc4——多种方法解决+闪的好快+come_game+白哥的鸽子+linux
- 详解word2vec
- 关于被3个搞物理的“颠覆”了且数学天才陶哲轩“开始压根不相信”的数学常识的算法实现与理解
- 吴军 阅读与写作50讲 02 如何读懂作者的内心 读后感