java - 每 2 小时执行一次 Java 定时器

标签 java timer scheduling

我有一个定时器例程,我想每两个小时执行一次。但是我下面的逻辑似乎执行得太早了。有谁知道我做错了什么?

         (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));

谢谢。

最佳答案

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

scheduleAtFixedRate(TimerTask task, long delay, long period)

Schedules the specified task for repeated fixed-rate execution, beginning after the specified delay.

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

long interval = 1000 * 60 * 120;
scheduleAtFixedRate(task, interval, interval)

关于java - 每 2 小时执行一次 Java 定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6372221/

相关文章:

java - 如何将 Eclipse 同时用于 Java 和 PHP?

java - 辅助数据类型

Android 无法在未调用 looper.prepare() 的线程内创建处理程序

laravel - 在 docker 容器中设置 laravel 任务调度器

java - Spring MessageConverter HTTP 415响应?

java - 使用较新 Java 的 Elasticsearch 占用的 RAM 比应有的要多

timer - STM32 MCU 上 DMA 到 GPIO 的可靠性如何?

javascript - 使用 React Hooks 的倒数计时器

c# - 将 Timer 类从 java 转换为 c# : scheduling tasks

linux - schedule() 什么时候返回?