package com.linkedin.thirdeye.completeness.checker;
import com.linkedin.thirdeye.anomaly.utils.AnomalyUtils;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* The scheduler which will run periodically and schedule jobs and tasks for data completeness
*/
public class DataCompletenessScheduler {
private static final Logger LOG = LoggerFactory.getLogger(DataCompletenessScheduler.class);
private ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
private DataCompletenessJobRunner dataCompletenessJobRunner;
private DataCompletenessJobContext dataCompletenessJobContext;
public void start() {
LOG.info("Starting data completeness checker service");
dataCompletenessJobContext = new DataCompletenessJobContext();
dataCompletenessJobRunner = new DataCompletenessJobRunner(dataCompletenessJobContext);
scheduledExecutorService.scheduleAtFixedRate(dataCompletenessJobRunner, 0, 15, TimeUnit.MINUTES);
}
public void shutdown() {
AnomalyUtils.safelyShutdownExecutionService(scheduledExecutorService, this.getClass());
}
}