java定时器实例_java定时器实例 - 心若在,人就在(心没有停歇的地方,到那里都是流浪.) - ITeye博客...

该博客展示了如何在Java中使用Timer类创建一个定时任务,任务在程序启动后立即执行,并每30秒重复一次。定时任务的启动和停止通过ServletContextListener监听器进行控制,确保在Web应用上下文中正确运行。
摘要由CSDN通过智能技术生成

package com.my.time;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Timer;

public class BugXmlTimer {

public Timer timer;

public void timerStart(){

timer = new Timer();

Date datetime=new Date();

Date midnightDate=new Date();

SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");

SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try {

midnightDate = sdf2.parse(sdf1.format(datetime)+" 23:00:00");

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

long in=midnightDate.getTime()-datetime.getTime();

System.out.println("before task");

//立刻执行,然后每隔30s执行一次

timer.schedule(new BugXmlTimerTask(), 0,30000);

}

public void timerStop(){

if(timer!=null)

timer.cancel();

}

public static void main(String[] args){

BugXmlTimer myTimer=new BugXmlTimer();

// TODO Auto-generated method stub

myTimer.timerStart();

}

}

//这是执行任务的类,即每隔一段时间要做的事情在这里

package com.my.time;

import java.util.TimerTask;

public class BugXmlTimerTask extends TimerTask {

@Override

public void run() {

System.out.print("run task");

}

}

//以下是触发定时操作的类,该类继承了ServletContextListener

public class MyTimerListener implements ServletContextListener {

private BugXmlTimer mytimer = new BugXmlTimer ();

public void contextInitialized(ServletContextEvent event) {

mytimer.timerStart();

}

public void contextDestroyed(ServletContextEvent event) {

mytimer.timerStop();

}

}

然后在web.xml里部署一下,即可在程序启动后运行定时器了!

com.my.time.MyTimerListener

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-09-06 16:39

浏览 1934

评论

写的很好,学习了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值