【发布时间】:2011-06-16 12:57:07
【问题描述】:
我有一个计时器例程,我想每两个小时执行一次。但是我下面的逻辑似乎比预期的执行得太早了。有谁知道我做错了什么?
(new Timer()).scheduleAtFixedRate(new TimerTask()
{
@Override
public void run()
{
try
{
//TODO: Perform routine.
}
catch (Exception ex)
{
try
{
throw ex;
}
catch (Exception e)
{
}
}
}
}, 0, (1000 * 60 * 120));
谢谢。
【问题讨论】:
-
你的
try-catch看起来很糟糕... -
“太早”是什么意思?
-
虽然这不会改变您的结果,但您应该使用 TimeUnit。 TimeUnit.MILLISECONDS.convert(2, TimeUnit.HOURS)
-
@Martijn Try-catch 应该将异常传递给 main 以被捕获。
-
@John 我认为传递给初始延迟的值是它快速执行的原因。我的错。
标签: java timer scheduling