package org.ei.drishti.scheduler; import org.joda.time.DateTime; import org.motechproject.scheduler.MotechSchedulerService; import org.motechproject.scheduler.domain.MotechEvent; import org.motechproject.scheduler.domain.RepeatingSchedulableJob; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Date; import java.util.HashMap; import static org.joda.time.DateTimeConstants.MILLIS_PER_HOUR; @Component public class ANMReportScheduler { public static final String SUBJECT = "DRISHTI-ANM-REPORT-FETCH-SCHEDULE"; public static final int START_DELAY_IN_MINUTES = 10; public static final long REPEAT_INTERVAL_IN_HOUR = 6L; private MotechSchedulerService schedulerService; private static Logger logger = LoggerFactory.getLogger(ANMReportScheduler.class.toString()); @Autowired public ANMReportScheduler(MotechSchedulerService schedulerService) { this.schedulerService = schedulerService; } public void startTimedScheduler() { logger.info("Scheduling anm report fetch ..."); Date startTime = DateTime.now().plusMinutes(START_DELAY_IN_MINUTES).toDate(); MotechEvent event = new MotechEvent(SUBJECT, new HashMap<String, Object>()); RepeatingSchedulableJob job = new RepeatingSchedulableJob(event, startTime, null, REPEAT_INTERVAL_IN_HOUR * MILLIS_PER_HOUR); schedulerService.safeScheduleRepeatingJob(job); } }