我有一个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
}