在我的scheduleAtFixedRate方法中,我把延迟时间开始运行该方法。但是这个延迟时间不能正常运行并立即运行

时间:2016-07-18 07:51:14

标签: java scheduler

这是我的代码,

static ScheduledExecutorService scheduler = null;
scheduler.scheduleAtFixedRate(new Testing(),60, 24*60*60,TimeUnit.SECONDS);


public static Runnable Testing()
{ System.out.println("Testing...");
}

我希望在60秒后调用Runnable()方法,但是当我运行代码时它立即调用此方法。 我的代码有问题吗? 我是scheduleAtFixedRate方法的新手。 谢谢:))

3 个答案:

答案 0 :(得分:1)

请试试这个

scheduler.scheduleAtFixedRate(new Runnable() {
  @Override
  public void run() {
    System.out.println("Testing...");
  }
}, 60, 24*60*60,TimeUnit.SECONDS);

答案 1 :(得分:0)

创建一个扩展Runnable的类。

  static class MyRunnable implements Runnable {
    public void run() {
      System.out.println(i + " : Testing ... Current timestamp: " + new Date());
      // Put any relevant code here.
    }
  }

然后您的代码按预期工作。请尝试在codiva.io online compiler ide处运行完整的工作代码。

相关建议,在专业代码中,人们通常会避免使用线程调度程序来运行每天运行的任务。最常见的选择是使用cron作业和更多设置。但这超出了这个问题的范围。

答案 2 :(得分:0)

Runnable是一个接口,您必须实现run()方法。您可以尝试将代码更改为



    scheduler.scheduleAtFixedRate(new Runnable() {
        @Override
        public void run() {
            System.out.println("Testing...");
        }
    },60, 24*60*60,TimeUnit.SECONDS);