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

java中怎么实现定时功能

发布网友 发布时间:2022-04-23 02:18

我来回答

3个回答

热心网友 时间:2022-04-27 04:58

这个是我在网上找的不知道是不是你要的:

java定时任务Timer 关于定时任务,似乎跟时间操作的联系并不是很大,但是前面既然提到了定时任务,索性在这里一起解决了。设置定时任务很简单,用Timer类就搞定了。一、延时执行首先,我们定义一个类,给它取个名字叫TimeTask,我们的定时任务,就在这个类的main函数里执行。代码如下:
package test;
import java.util.Timer;
public class TimeTaskTest {
public static void main(String[] args){ Timer timer = new Timer();
timer.schele(new Task(), 60 * 1000);
}
}
解释一下上面的代码。上面的代码实现了这样一个功能,当TimeTask程序启动以后,过一分钟后执行某项任务。很简单吧:先new一个Timer对象,然后调用它的schele方法,这个方法有四个重载的方法,这里我们用其中一个,
public void schele(TimerTask task,long delay)
首先,第一个参数第一个参数就是我们要执行的任务。这是一个TimerTask对象,确切点说是一个实现TimerTask的类的对象,因为TimerTask是个抽象类。上面的代码里 面,Task就是我们自己定义的实现了TimerTask的类,因为是在同一个包里面,所以没有显性的import进来。Task类的代码如下
package test;
import java.util.TimerTask;
public class Task extends TimerTask { public void run()
{
System.out.println("定时任务执行");
}
}
我们的Task必须实现TimerTask的方法run,要执行的任务就在这个run方法里面,这里,我们只让它往控制台打一行字。第二个参数第二个参数是一个long型的值。这是延迟的时间,就是从程序开始以后,再过多少时间来执行定时任务。这个long型的值是毫秒数,所以前面我们的程序里面,过一分钟后执行用的参数值就是 60 * 1000。二、循环执行设置定时任务的时候,往往我们需要重复的执行这样任务,每隔一段时间执行一次,而上面的方法是只执行一次的,这样就用到了schele方法的是另一个重载函数public void schele(TimerTask task,long delay,long period)
前两个参数就不用说什么了,最后一个参数就是间隔的时间,又是个long型的毫秒数(看来java里涉及到时间的,跟这个long是脱不了干系了),比如我们希望上面的任务从第一次执行后,每个一分钟执行一次,第三个参数值赋60 * 1000就ok了。三、指定执行时间既然号称是定时任务,我们肯定希望由我们来指定任务指定的时间,显然上面的方法就不中用了,因为我们不知道程序什么时间开始运行,就没办法确定需要延时多少。没关系,schele四个重载的方法还没用完呢。用下面这个就OK了:
public void schele(TimerTask task,Date time)
比如,我们希望定时任务2006年7月2日0时0分执行,只要给第二个参数传一个时间设置为2006年7月2日0时0分的Date对象就可以了。有一种情况是,可能我们的程序启动的时候,已经是2006年7月3日了,这样的话,程序一启动,定时任务就开始执行了。schele最后一个重载的方法是public void schele(TimerTask task,Date firstTime,long period)
没必要说什么了吧:)四、j2ee中的定时任务在实际的项目中,往往定时任务需要对web工程中的资源进行操作,这样一来,用上面的单个程序的方式可能就有点力不从心了,因为很多web工程的资源它操作不到。解决的办法是,使用Servlet,把执行定时任务的那些代码放到Servlet的init()函数里就可以了,这个easy,就没有必要再写示例代码了吧

热心网友 时间:2022-04-27 06:16

我们可以使用Timer和TimerTask类在java中实现定时任务,详细说明如下:

1、基础知识
java.util.Timer
一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。此类是线程安全的:多个线程可以共享单个 Timer 对象而无需进行外部同步。
java.util.TimerTask
由 Timer 安排为一次执行或重复执行的任务。

2、示例代码
该示例实现这样一个功能,在系统运行期间,每30分钟,系统自动检查连接池中的可用连接数,并输出到日志中。
首先创建一个需要定时执行的任务类,这个任务类需要继承TimerTask,然后重写run()方法,run()方法体中的代码就是定时需要执行的操作,在本demo中,就是获取连接池中当前可用连接数,并输出到日志中,具体实现代码如下:
public class TaskAvailableConnectNumber extends TimerTask {
private Logger log = Logger.getLogger(TaskAvailableConnectNumber.class);
private ConnectionPool pool=ConnectionPool.getInstance();
@Override
publicvoid run() {
log.debug("当前连接池中可用连接数"+pool.getAvailableConnectNumber());
}
}
下面定义一个*,负责在应用服务器启动时打开定时器,*需要实现ServletContextListener接口,并重写其中的contextInitialized()和contextDestroyed()方法,代码如下:
public class OnLineListener implements ServletContextListener{
private Logger log = Logger.getLogger(OnLineListener.class);
Timer timer = null;
//在应用服务器启动时,会执行该方法
publicvoid contextInitialized(ServletContextEvent arg0) {
//创建一个定时器,用于安排需要定时执行的任务。
timer = new Timer();
//为定时器安排需要定时执行的任务,该任务就是前面创建的任务类TaskAvailableConnectNumber,并指定该任务每30分钟执行一次。
timer.schele(new TaskAvailableConnectNumber(), 0, 30*60*1000);
log.debug("启动定时器");
}
//应用服务器关闭时,会执行该方法,完成关闭定时器的操作。
public void contextDestroyed(ServletContextEvent arg0) {
if(timer!=null){
timer.cancel();//关闭定时器
log.debug("-----定时器销毁--------");
}
}
}
*要想正常运行,需要在web.xml文件中进行配置,配置信息如下:
<!-- *配置开始 -->
<listener>
<listener-class>
cn.sdfi.listen.OnLineListener
</listener-class>
</listener>
<!-- *配置结束 -->
以上步骤完成后,一个简单的定时器就算开发完成了。

热心网友 时间:2022-04-27 07:51

恢复一下出厂设置
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小米平板6Max没有网络怎么办 ...wifi和4G网络我都试过都现实吗没有网络。刚买的是正品没有刷机_百度... 2023年淘宝双11招商规则 淘宝国庆狂欢季招商规则及玩法 淘宝年货买不停招商规则 淘宝超来电活动招商规则 ZIP转换成RAR怎么转换? 衢州醉根艺品有限公司怎么样? 徐谷青主要业绩 徐谷青人物介绍 外酥里嫩的丸子怎么做 炸猪肉丸子怎么做才好吃~? 有谁知道温州特产藤桥牌的鸭舌好吃吗? 鸭舌是那里的特产在哪里能买到鸭舌? 狮子头肉丸子怎么做法 温州鸭舌哪种最好吃? 大肉丸子怎么做的?谢谢 最近发现温州特产鸭舌很好吃!请问哪有卖的?网站或实体都可以! 想请好朋友去吃温州特产初旭鸭舌,哪里的即便宜又好吃? 炸丸子时怎么让丸子酥香松软?有哪些小诀窍? 温州鸭舌头好吃不?什么牌子的好吃? 怎样炸大肉丸子 有朋友说温州特产初旭鸭舌很不错的,谁告诉我去哪里买? 怎样制作四喜大肉丸子 温州为什么特产鸭舌 大肉丸子怎样炸怎样做 怎样炸丸子才又香又脆 温州特产鸭舌哪个好吃 饭店的大肉丸子是怎么炸的 温州特产鸭舌的价格 跪求2014年国际足联巴西世界杯 百度云免费在线观看资源 在哪能看完整的2014年世界杯重播 谁又历届世界杯的资料,最好是视频的 2014年世界杯录像有谁知道的 求看2014年世界杯的视频网站? 2014年巴西世界杯央视CCTV5视频集锦的背景音乐 2014世界杯后网上会不会有世界杯的比赛视频合辑??? 2014年世界杯直播视频pptv网址有谁知道? 求2014年世界杯三四名比赛录像下载 最好是CCTV5高清那种 感谢 2014年世界杯俄罗斯捷克视频谁能介绍下 2014年世界杯比赛哪里可以下载,不是直播不要集锦,要全场比赛完整下载,哪位大侠指点一下,不胜感激。 CCTV5 2014年巴西世界杯 每场比赛完都有一些比赛精彩的视频或主教练采访,那是的背景音乐是什 2014年世界杯巡礼视频哪位能帮我说下? 2014世界杯内马尔受伤那段视频插曲叫什么 为什么发送图片显示gif尺寸过大 2014世界杯足球赛视频哪位去玩过? 谁能给我2014年巴西世界杯亚洲区预选赛 中国VS老挝 的视频。 2014年巴西世界杯决赛上,谁在上半场打进一粒越位球? 足球2014世界杯预赛赛程?什么时候,哪个视频直播? *新闻(CCTV13)在播放2014年世界杯比赛视频时背景音乐是什么歌