每2小时执行一次Java Timer

Bit*_*map 1 java scheduling timer

我有一个计时器例程,我想每两个小时执行一次.但我的下面的逻辑似乎执行得比预期的要早.有谁知道我做错了什么?

         (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));
Run Code Online (Sandbox Code Playgroud)

谢谢.

DNA*_*DNA 5

根据javadoc,您的代码应立即触发例程(初始延迟为零),然后每2小时(120分钟后).

scheduleAtFixedRate(TimerTask任务,长延迟,长周期)

在指定的延迟之后开始,为重复的固定速率执行安排指定的任务.

如果你想在2小时后第一次触发,那么就做

long interval = 1000 * 60 * 120;
scheduleAtFixedRate(task, interval, interval)
Run Code Online (Sandbox Code Playgroud)