javaTimer怎么定时执行任务
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章主要讲解了"javaTimer怎么定时执行任务",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"javaTimer怎么定时执行任务"吧!下面给大家
千家信息网最后更新 2025年02月23日javaTimer怎么定时执行任务
这篇文章主要讲解了"javaTimer怎么定时执行任务",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"javaTimer怎么定时执行任务"吧!
下面给大家介绍java Timer 定时每天凌晨1点执行任务,具体代码如下所示:
import java.util.TimerTask;/** * 执行内容 * @author admin_Hzw * */public class Task extends TimerTask { public void run() { System.out.println("我有一头小毛驴!"); }}import java.util.Calendar;import java.util.Date;import java.util.Timer;/** * 任务管理 * @author admin_Hzw * */public class TimerManager { /** * @param args */ public static void main(String[] args) { new TimerManager(); } //时间间隔(一天) private static final long PERIOD_DAY = 24 * 60 * 60 * 1000; public TimerManager() { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 1); //凌晨1点 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(); Task task = new Task(); //安排指定的任务在指定的时间开始进行重复的固定延迟执行。 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(); }}
知识点扩展: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"); @Override public 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文件
com.eh.util.NFDFlightDataTaskListener
感谢各位的阅读,以上就是"javaTimer怎么定时执行任务"的内容了,经过本文的学习后,相信大家对javaTimer怎么定时执行任务这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
任务
时间
第一次
加一
内容
情况
学习
天数
方法
知识
知识点
问题
延迟
服务
一头
代码
信息
周期
基础
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
英国影视软件开发斯蒂文
学校sci数据库不完善
软件开发是年轻化行业吗
杭州回温州平阳高速有哪些服务器
软件开发cmm
系统日志和数据库日志
客机访问服务器
北京建拓网络技术有限公司
重庆pdu服务器专用电源购买
在views使用数据库的类
小鱼易连软件开发单位
数据库 云服务
科技互联网视频宣传片
物理硬盘怎么加载到云服务器
一个服务器只能放五个网站吗
国家网络安全法颁布时间
新手怎样学习网络安全知识
找一篇关于网络安全的小短文
信息化网络安全改造
如何设置浏览器代理服务器
网络安全法 入刑
网络安全月主题图片
网络安全方案规划与设计
安宁品牌软件开发特价
怎么更换服务器前端包
和田软件开发分类
HKMO是哪个数据库
我的世界服务器改权限
数据库check密码约束
安全网络法规定的网络安全包括