一段时间后如何重新运行一系列callables

时间:2016-02-09 09:53:18

标签: java multithreading

我有一个Callables线程池,我想调用它并在每个任务完成时执行操作。当所有任务完成后,我想在等待一段时间后重新运行任务。

 private void cronJob(long interval) {
  ExecutorService executor = Executors.newFixedThreadPool(50);
        CompletionService<ArrayList<Element>> compService = new ExecutorCompletionService<>(executor);

    for (Task task : tasks) {
        compService.submit((Callable<ArrayList<Element>>) task);
    }
    for (Task task : tasks) {
        Future<ArrayList<Element>> future = compService.take();
        ArrayList<Element> list = future.get();
        for (Element e : list) {
            e.update();
        }
    }

    executor.shutdown();
    executor.awaitTermination(Long.MAX_VALUE , TimeUnit.NANOSECONDS);
    //Wait for interval period and repeat
}

0 个答案:

没有答案