问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

定时器联动额外程序创建两个任务,每个任务有单独的定时器,利用一...

发布网友 发布时间:2022-04-30 16:46

我来回答

1个回答

热心网友 时间:2022-04-14 10:14

摘要private java.util.Timer timer = null; public void contextInitialized(ServletContextEvent event) { timer = new java.util.Timer(true); event.getServletContext().log("定时器已启动"); timer.schele(new MyTask(event.getServletContext()), 0, 60*60*1000); event.getServletContext().log("已经添加任务调度表"); } public void contextDestroyed(ServletContextEvent event) { timer.cancel(); event.getServletContext().log("定时器销毁"); } 以上代码中, timer.schele(new MyTask(event.getServletContext()), 0, 60*60*1000)这一行为定时器调度语句,其中MyTask是自定义需要被调度的执行任务(在我的财政数据中心项目中就是报表计算引擎入口),从java.util.TimerTask继承,下面会重点讲述,第三个参数表示每小时(即60*60*1000毫秒)被触发一次,中间参数0表示无延迟。其它代码相当简单咨询记录 · 回答于2021-12-27定时器联动额外程序创建两个任务,每个任务有单独的定时器,利用一个按键触发(自动触发也可以),第一个任务开启后执行定时器读秒,串口输出定时器1启动,读秒结束串口输出定时器1删除,并打开第二个任务,执行定时器读秒,串口输出定时器2启动,读秒结束串口输出定时器2删除,程序结束您好,我这边正在为您查询,请稍等片刻,我这边马上回复您~您好,很高兴为您解答,定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schele(TimerTask task, long delay)方法,设定指定的任务task在指定的延迟delay后执行。定时器任务类TimerTask是抽象类,继承并重写其run()方法,可实现具体任务。schele(TimerTask task, Date time)设定指定任务task在指定时间time执行。cancel()方法结束这个定时器。schele(TimerTask task, long delay, long period)方法设定指定任务task在指定延迟delay后进行固定延迟peroid的执行。scheleAtFixedRate(TimerTask task, long delay, long period)方法设定指定任务task在指定延迟delay后进行固定频率peroid的执行。要实现一个定时任务,运用java中的Timer和TimerTask类可以非常容易实现实时调用处理函数。这两个类使用起来非常方便,可以完成我们对定时器的绝大多数需要。看个简单的例子:import java.io.IOException;import java.util.Timer;public class TimerTest {public static void main(String[] args){Timer timer = new Timer();timer.schele(new MyTask(), 1000, 2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.while(true){//这个是用来停止此任务的,否则就一直循环执行此任务了try {int ch = System.in.read();if(ch-'c'==0){timer.cancel();//使用这个方法退出任务}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}static class MyTask extends java.util.TimerTask{@Overridepublic void run() {// TODO Auto-generated method stubSystem.out.println("________");}}}private java.util.Timer timer = null; public void contextInitialized(ServletContextEvent event) { timer = new java.util.Timer(true); event.getServletContext().log("定时器已启动"); timer.schele(new MyTask(event.getServletContext()), 0, 60*60*1000); event.getServletContext().log("已经添加任务调度表"); } public void contextDestroyed(ServletContextEvent event) { timer.cancel(); event.getServletContext().log("定时器销毁"); } 以上代码中, timer.schele(new MyTask(event.getServletContext()), 0, 60*60*1000)这一行为定时器调度语句,其中MyTask是自定义需要被调度的执行任务(在我的财政数据中心项目中就是报表计算引擎入口),从java.util.TimerTask继承,下面会重点讲述,第三个参数表示每小时(即60*60*1000毫秒)被触发一次,中间参数0表示无延迟。其它代码相当简单上面的代码中看到了在构造MyTask时,传入了javax.servlet.ServletContext类型参数,是为记录Servlet日志方便而传入,因此需要重载MyTask的构造函数(其父类java.util.TimerTask原构造函数是没有参数的)。在timer.schele()的调度中,设置了每小时调度一次,因此如果想实现调度任务每24小时被执行一次,还需要判断一下时钟点,以常量C_SCHEDULE_HOUR表示(晚上12点,也即0点)。同时为防止24小时执行下来,任务还未执行完(当然,一般任务是没有这么长的),避免第二次又被调度以引起执行冲突,设置了当前是否正在执行的状态标志isRunning。示例代码如下所示: private static final int C_SCHEDULE_HOUR = 0; private static boolean isRunning = false; private ServletContext context = null; public MyTask(ServletContext context) { this.context = context; } public void run() { Calendar cal = Calendar.getInstance(); if (!isRunning) { if (C_SCHEDULE_HOUR == cal.get(Calendar.HOUR_OF_DAY)) { isRunning = true; context.log("开始执行指定任务"); //TODO 添加自定义的详细任务,以下只是示例 int i = 0; while (i++ < 10) { cont有直接操作的步骤代码呢吗private java.util.Timer timer = null; public void contextInitialized(ServletContextEvent event) { timer = new java.util.Timer(true); event.getServletContext().log("定时器已启动"); timer.schele(new MyTask(event.getServletContext()), 0, 60*60*1000); event.getServletContext().log("已经添加任务调度表"); } public void contextDestroyed(ServletContextEvent event) { timer.cancel(); event.getServletContext().log("定时器销毁"); }亲,没了吗这个任务求解
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请问哪位大哥“谨谢不敏”是什么意思? 小女子尽谢不敏什么意思 谨谢不敏是什么意思? 敬谢不敏是是什么意思? 谢不敏的意思是什么 谢不敏词语解释 什么叫“谢不敏”? 6岁儿童晚上睡眠不好怎么办 六岁孩子精神异常怎么办 小程序开发需要什么技术 没有技术如何开发小程序 雷电模拟器怎么设置火影忍者的决斗场脚本? 为什么雷电模拟器蜀运行脚本门搬砖不好使人物角色进黑风本一半就不走了,,变成手动了,但是本还是刷? 单片机定时器如何用按键调整 雷电模拟器用脚本长时间挂机会死机吗? 单片机定时器中断功能和定时器定时功能有什么区别,什么情况需要中断,什么时候不需要呢,讲好必采纳 雷电模拟器多开时候录制脚本为什么其他窗口没有,还要重新录制 有尝求教 雷电模拟器按键精灵编写手机脚本问题 雷电模拟器脚本如何导入 雷电模拟器里能否使用脚本让一个软件完成登录签到兑换功能 雷电模拟器挂脚本关了也能挂吗? 电脑重启后文件都自动消失了,桌面也改了。怎么回事啊 不小心把程序目录文件名改了,程序图标变成空白的,如何恢复? 系统的“文档图标”丢失,怎么办? 桌面文件 图标更改路径不见了 在那个文件里面 我今天把一个隐藏文件夹的图标给改了,然后文件就不见了我该怎么找回来啊 电脑xp系统更改文件夹图标后,图标没改,文件都没了,怎么找回?急 文件夹改了图标不见了.求还原 万圣节做梦,梦到鬼了,何解 懂的请进! 打开电脑后,所有文件夹图标没有了 支付宝可以充值手机话费吗? 雷电模拟器安装趣头条脚本为什么显示服务器在线验证中。急急急 雷电模拟器怎么自动回收装备 提问雷电模拟器多开十开后 如何实现十个窗口同时摇一摇 如何在雷电模拟器上运行小曦Coc辅助 电脑版手游模拟器哪款即稳定又能使用脚本? 为什么总雷电录制脚本会停止 中国史上最牛逼的特种兵是谁? 驼粮食的坨是什么坨 雷电模拟器怎么录制视频? 魔腾的鬼影重重和末日的糖果使徒哪个更稀有 战争年代有哪些军人英雄? 驼人还是驮人 《英雄联盟》魔腾皮肤鬼影重重怎么样? 请问,驼是动词吗??? 傅平山的烈士身后 一等功臣傅平山烈士的老家是哪里? lol鬼影重重魔腾多少钱 驮、是什么意思 战争英雄人物故事简短 lol梦魇皮肤鬼影重重多少钱啊?