java web如何实现每天定时执行任务
发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,小编给大家分享一下java web如何实现每天定时执行任务,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!第一步:package com.eh.util;import java.uti
千家信息网最后更新 2024年11月18日java web如何实现每天定时执行任务
小编给大家分享一下java web如何实现每天定时执行任务,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
第一步:
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
看完了这篇文章,相信你对"java web如何实现每天定时执行任务"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
任务
时间
第一次
加一
情况
方法
篇文章
服务
信息
内容
周期
基础
天数
完了
文件
是在
更多
知识
程序
行业
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
gdc服务器安全证书
网络安全涉密事件
深圳建行软件开发待遇
matlab与数据库相连
网络安全经典教材
杨浦区品质网络技术采购信息
软件开发需求与成本冲突
ff14吧捏脸数据库
服务器更换内存后初始化
信掌柜软件开发的作者是谁
期权系统软件开发商排名
代码导入数据库之后
url服务器找不到了
软件开发与软件开发培训
南宁软件开发公司招聘后端
批处理mysql数据库
app软件开发组成
惠普服务器心跳灯亮黄灯
网页哪些部分需要连接数据库
软件开发可以用墨水屏吗
lunix服务器
oauth 服务器开发
一个数据库能存多少个表
软件开发人员的出路
青少年网络安全观念和意识
matlab与数据库相连
科技风口互联网保险
服务器和空间
陪护网络安全技能
石河子市品格互联网科技