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

时间:2012-09-04 16:32:39

标签: java

我有一个timedtask,由一个带有startAtFixedInterval的计时器启动,间隔很长。 定时任务的工作是检查网站上的变化。

我想允许用户在间隔中间手动重启任务,以便在不等待间隔结束的情况下获得新结果。 我看不到任何reset()方法,所以我想我必须停止并重新启动设备,我是对的吗? 或者实际上有一种方式/最佳选择?

2 个答案:

答案 0 :(得分:0)

java.util.Timer课程中有cancel()方法。它取消当前的计时器任务。当当前计时器任务被取消时,启动一个新任务。

答案 1 :(得分:0)

您可以使用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);

}