javaTimer怎么定时执行任务
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要讲解了"javaTimer怎么定时执行任务",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"javaTimer怎么定时执行任务"吧!下面给大家
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
淄博红色文化馆软件开发
晋城网络技术价目表
软件开发发展动态
金山区海航软件开发怎么样
方舟服务器优质推荐
网络技术学院奖获奖
战地5服务器怎么添加
在线教育软件开发的未来前景
群集管理服务器
软件开发保密补充协议范本
数据库的研发6
软件开发需求分析难点
网络技术专接本有哪些
海南特色软件开发市场报价
滁州餐饮软件开发哪家好
eps加载三维数据库
软件开发培训班好还是自学
数据库学生表中地址怎么表示
金铲铲什么时候开新服务器
网络安全和网络安全法
冷水江天气预报软件开发
服务器tls
网络安全产品应用方案
国内企业网络安全排名
医院数据库的安全管理
根据数据库字段排序
建立乡贤人才数据库的通知
奇安信网络安全系统设计方案
网络安全设计与审计系统
大智慧软件开发者