package gr.ntua.ivml.athena.harvesting.concurrent; import gr.ntua.ivml.athena.harvesting.Harvester; import java.util.Date; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; public class ScheduledHarvestingExecutor { private static final ScheduledExecutorService scheduler; static{ scheduler = Executors.newScheduledThreadPool(100); } public static void addTask(Harvester harvester, long startTime, long period){ scheduler.scheduleWithFixedDelay(harvester, startTime, period, TimeUnit.MILLISECONDS); } public static void addTask(Harvester harvester, Date startTime, long period){ scheduler.scheduleWithFixedDelay(harvester, startTime.getTime() - System.currentTimeMillis(), period, TimeUnit.MILLISECONDS); } }