你这种方式不行。如果程序只要抛出了Exception,那么你这个定时器就崩溃了,这种定时器是最脆弱的。
可以用Spring集成的那种,可以配置时间,也可以自己控制时间,还可以拿Session之类的操作。操作数据库都行,也没有那么脆弱
我刚刚好写了一个实现。需要的话我传Demo给你吧
8446666 你懂的Q
t.schedule(new DemoTask(), 1000*delay, interval*60*1000);
不要这样用
这还不好办吗
你在你的DemoTask()执行完毕那时刻,调用t.start();//启动定时器
然后再在定时器中五分钟自后调用DemoTask(),并关闭定时器
如下代码
t1= new Timer(5000, new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
DemoTask();
t1.stop();
}
});
void DemoTask()
{
//执行完毕时候
t1.start();
}
注意程序没经调试,可能稍有细节要稍加修改
大体含义就是这样的
你可以添加一个线程,让这个DemoTask等五分钟执行。Thread.sleep(5*60*1000);这样程序会执行到你添加的地方后休息五分钟,然后继续执行
你想要实现这个功能,用Timer不好实现,建议你用quartz定时服务,很简单,设置cron表达式很容易实现。
cron表达式 0 0/5 * * * ?
定时器没用过,不过我想到一个方法,不知道可不可行:
while(true){
DemoTask();
wait(5*60*1000);
}
感觉功能上应该差不多吧