Java 以正确的方式重置定时任务

Java 以正确的方式重置定时任务,java,Java,我有一个timedtask,由一个带有StartFixedInterval的计时器启动,间隔很长。 定时任务的任务是检查网站上的更改 我想允许用户在中间的中间手动重启任务,以便在不等待间隔结束的情况下获得新的结果。 我看不到任何reset()方法,所以我想我必须停止并重新启动taks,对吗? 或者实际上有一种方法/最佳选择?在课堂上有cancel()方法。它取消当前计时器任务。取消当前计时器任务后,启动一个新任务。您可以使用ScheduledExecutorService public stat

我有一个timedtask,由一个带有StartFixedInterval的计时器启动,间隔很长。 定时任务的任务是检查网站上的更改

我想允许用户在中间的中间手动重启任务,以便在不等待间隔结束的情况下获得新的结果。 我看不到任何reset()方法,所以我想我必须停止并重新启动taks,对吗?


或者实际上有一种方法/最佳选择?

在课堂上有
cancel()
方法。它取消当前计时器任务。取消当前计时器任务后,启动一个新任务。

您可以使用
ScheduledExecutorService

public static void main(String[] args) throws InterruptedException {

    Runnable command = new Runnable() {

        @Override
        public void run() {
            System.out.println("I am done..");              
        }
    };

    ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
    executorService.scheduleAtFixedRate(command, 1000, 1000, TimeUnit.MILLISECONDS);

}

“终止此计时器,丢弃所有当前计划的任务。不会干扰当前正在执行的任务(如果存在)。计时器一旦终止,其执行线程将正常终止,并且无法在其上计划更多任务。”因此,我丢失了不需要的计划。有多个计时器,每个任务一个。每当你想停止调用
shutdown()
,让执行者重新安排。