Java中长时间运行的预定执行程序

时间:2013-05-06 17:22:19

标签: java scheduled-tasks

我开始使用Java并发功能,而在ScheduledExecutorService接口处。我遇到了这个片段,每隔10秒发出一声哔哔声一小时:

import static java.util.concurrent.TimeUnit.*;
 class BeeperControl {
    private final ScheduledExecutorService scheduler =
       Executors.newScheduledThreadPool(1);

    public void beepForAnHour() {
        final Runnable beeper = new Runnable() {
                public void run() { System.out.println("beep"); }
            };
        final ScheduledFuture<?> beeperHandle =
            scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
        scheduler.schedule(new Runnable() {
                public void run() { beeperHandle.cancel(true); }
            }, 60 * 60, SECONDS);
    }
 }

对于像我这样的初学者来说这似乎很容易,但我的问题是我想要一个永远每10秒钟读取一个MySql表的Java程序。计划执行人是这类工作的最佳选择吗?

1 个答案:

答案 0 :(得分:3)

要永远运行,请取出代码取消任务。