Search in sources :

Example 1 with RunOnceSchedulableJob

use of org.motechproject.scheduler.contract.RunOnceSchedulableJob in project motech by motech.

the class MotechSchedulerActionProxyServiceImpl method scheduleRunOnceJob.

@Override
public void scheduleRunOnceJob(String subject, Map<Object, Object> parameters, DateTime startDate) {
    MotechEvent motechEvent = new MotechEvent(subject, createMotechEventParameters(parameters));
    RunOnceSchedulableJob job = new RunOnceSchedulableJob(motechEvent, startDate);
    scheduler.scheduleRunOnceJob(job);
}
Also used : MotechEvent(org.motechproject.event.MotechEvent) RunOnceSchedulableJob(org.motechproject.scheduler.contract.RunOnceSchedulableJob)

Example 2 with RunOnceSchedulableJob

use of org.motechproject.scheduler.contract.RunOnceSchedulableJob in project motech by motech.

the class TestRunOnceSchedulableJob method equalsTest.

@Test
public void equalsTest() throws Exception {
    DateTime now = DateUtil.now();
    DateTime date = now.plusDays(1);
    DateTime date2 = now.plusDays(2);
    RunOnceSchedulableJob job1 = new RunOnceSchedulableJob(motechEvent1, date);
    RunOnceSchedulableJob job1Same = new RunOnceSchedulableJob(motechEvent1, date);
    RunOnceSchedulableJob job2 = new RunOnceSchedulableJob(motechEvent2, date);
    RunOnceSchedulableJob job3 = new RunOnceSchedulableJob(motechEvent1, date2);
    assertTrue(job1.equals(job1));
    assertTrue(job1.equals(job1Same));
    assertFalse(job1.equals(null));
    assertFalse(job1.equals(motechEvent1));
    // Same date, different event
    assertFalse(job1.equals(job2));
    // Same event different date
    assertFalse(job1.equals(job3));
}
Also used : DateTime(org.joda.time.DateTime) RunOnceSchedulableJob(org.motechproject.scheduler.contract.RunOnceSchedulableJob) Test(org.junit.Test)

Example 3 with RunOnceSchedulableJob

use of org.motechproject.scheduler.contract.RunOnceSchedulableJob in project motech by motech.

the class TestEventListener method shouldScheduleRunOnceJob.

@Test
public void shouldScheduleRunOnceJob() throws SchedulerException {
    try {
        fakeNow(newDateTime(2020, 7, 15, 10, 0, 0));
        Map<String, Object> params = new HashMap<>();
        params.put(MotechSchedulerService.JOB_ID_KEY, "job_id");
        schedulerService.scheduleRunOnceJob(new RunOnceSchedulableJob(new MotechEvent("test_event", params), newDateTime(2020, 7, 15, 12, 0, 0)));
        List<DateTime> fireTimes = getFireTimes("test_event-job_id-runonce");
        assertEquals(asList(newDateTime(2020, 7, 15, 12, 0, 0)), fireTimes);
    } finally {
        stopFakingTime();
    }
}
Also used : HashMap(java.util.HashMap) MotechEvent(org.motechproject.event.MotechEvent) RunOnceSchedulableJob(org.motechproject.scheduler.contract.RunOnceSchedulableJob) DateUtil.newDateTime(org.motechproject.commons.date.util.DateUtil.newDateTime) DateTime(org.joda.time.DateTime) Test(org.junit.Test)

Example 4 with RunOnceSchedulableJob

use of org.motechproject.scheduler.contract.RunOnceSchedulableJob in project motech by motech.

the class MotechSchedulerDatabaseServiceImplBundleIT method addTestJobs.

private void addTestJobs() {
    Map<String, Object> params = new HashMap<>();
    params.put(MotechSchedulerService.JOB_ID_KEY, "job_id1");
    // this job should be active
    schedulerService.scheduleDayOfWeekJob(new DayOfWeekSchedulableJob(new MotechEvent("test_event_1", params), new DateTime(CURRENT_YEAR - 1, 3, 10, 0, 0), new DateTime(CURRENT_YEAR + 2, 3, 22, 0, 0), Arrays.asList(DayOfWeek.Monday, DayOfWeek.Thursday), new Time(10, 10), false));
    params = new HashMap<>();
    params.put(MotechSchedulerService.JOB_ID_KEY, "job_id2");
    schedulerService.scheduleDayOfWeekJob(new DayOfWeekSchedulableJob(new MotechEvent("test_event_2", params), new DateTime(CURRENT_YEAR + 1, 7, 10, 0, 0), new DateTime(CURRENT_YEAR + 3, 7, 22, 0, 0), Arrays.asList(DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday), new Time(10, 10), false));
    params = new HashMap<>();
    params.put(MotechSchedulerService.JOB_ID_KEY, "job_id3");
    schedulerService.scheduleDayOfWeekJob(new DayOfWeekSchedulableJob(new MotechEvent("test_event_3", params), new DateTime(CURRENT_YEAR + 4, 7, 10, 0, 0), new DateTime(CURRENT_YEAR + 5, 7, 22, 0, 0), Arrays.asList(DayOfWeek.Monday, DayOfWeek.Thursday), new Time(10, 10), false));
    params = new HashMap<>();
    params.put(MotechSchedulerService.JOB_ID_KEY, "job_id4");
    schedulerService.scheduleJob(new CronSchedulableJob(new MotechEvent("test_event_4", params), "0 0 12 * * ?"));
    params = new HashMap<>();
    params.put(MotechSchedulerService.JOB_ID_KEY, "job_id5");
    schedulerService.scheduleRunOnceJob(new RunOnceSchedulableJob(new MotechEvent("test_event_5", params), newDateTime(CURRENT_YEAR + 6, 7, 15, 12, 0, 0)));
    params = new HashMap<>();
    params.put(MotechSchedulerService.JOB_ID_KEY, "job_id6");
    schedulerService.scheduleRepeatingJob(new RepeatingSchedulableJob(new MotechEvent("test_event_6", params), DateTimeConstants.SECONDS_PER_DAY, newDateTime(CURRENT_YEAR + 4, 7, 15, 12, 0, 0), newDateTime(CURRENT_YEAR + 4, 7, 18, 12, 0, 0), false));
}
Also used : RepeatingSchedulableJob(org.motechproject.scheduler.contract.RepeatingSchedulableJob) CronSchedulableJob(org.motechproject.scheduler.contract.CronSchedulableJob) HashMap(java.util.HashMap) DayOfWeekSchedulableJob(org.motechproject.scheduler.contract.DayOfWeekSchedulableJob) DateUtil.newDateTime(org.motechproject.commons.date.util.DateUtil.newDateTime) Time(org.motechproject.commons.date.model.Time) DateTime(org.joda.time.DateTime) TimeFaker.stopFakingTime(org.motechproject.testing.utils.TimeFaker.stopFakingTime) MotechEvent(org.motechproject.event.MotechEvent) DateUtil.newDateTime(org.motechproject.commons.date.util.DateUtil.newDateTime) DateTime(org.joda.time.DateTime) RunOnceSchedulableJob(org.motechproject.scheduler.contract.RunOnceSchedulableJob)

Example 5 with RunOnceSchedulableJob

use of org.motechproject.scheduler.contract.RunOnceSchedulableJob in project motech by motech.

the class MotechSchedulerDatabaseServiceImplBundleIT method shouldGetScheduledJobsBasicInfoWithSortingAndPagination.

@Test
public void shouldGetScheduledJobsBasicInfoWithSortingAndPagination() throws SchedulerException, SQLException {
    try {
        fakeNow(newDateTime(CURRENT_YEAR + 6, 7, 15, 10, 0, 0));
        Map<String, Object> params = new HashMap<>();
        params.put(MotechSchedulerService.JOB_ID_KEY, "job_id");
        schedulerService.scheduleJob(new CronSchedulableJob(new MotechEvent("test_event_2a", params), "0 0 12 * * ?"));
        schedulerService.scheduleRunOnceJob(new RunOnceSchedulableJob(new MotechEvent("test_event_2b", params), newDateTime(CURRENT_YEAR + 6, 7, 15, 12, 0, 0)));
        schedulerService.scheduleRepeatingJob(new RepeatingSchedulableJob(new MotechEvent("test_event_2c", params), DateTimeConstants.SECONDS_PER_DAY, newDateTime(CURRENT_YEAR + 6, 7, 15, 12, 0, 0), newDateTime(CURRENT_YEAR + 6, 7, 18, 12, 0, 0), false));
        JobBasicInfo expected = new JobBasicInfo(JobBasicInfo.ACTIVITY_NOTSTARTED, JobBasicInfo.STATUS_OK, "test_event_2a-job_id", DEFAULT_GROUP, format("%s-07-15 10:00:00", CURRENT_YEAR + 6), format("%s-07-15 12:00:00", CURRENT_YEAR + 6), "-", JobBasicInfo.JOBTYPE_CRON, "", false);
        List<JobBasicInfo> jobBasicInfos;
        JobsSearchSettings jobsSearchSettings = getGridSettings(2, 2, "name", "desc");
        jobBasicInfos = databaseService.getScheduledJobsBasicInfo(jobsSearchSettings);
        assertEquals(expected.getActivity(), jobBasicInfos.get(0).getActivity());
        assertEquals(expected.getStatus(), jobBasicInfos.get(0).getStatus());
        assertEquals(expected.getStartDate(), jobBasicInfos.get(0).getStartDate());
        assertEquals(expected.getNextFireDate(), jobBasicInfos.get(0).getNextFireDate());
    } finally {
        stopFakingTime();
    }
}
Also used : RepeatingSchedulableJob(org.motechproject.scheduler.contract.RepeatingSchedulableJob) CronSchedulableJob(org.motechproject.scheduler.contract.CronSchedulableJob) HashMap(java.util.HashMap) JobBasicInfo(org.motechproject.scheduler.contract.JobBasicInfo) MotechEvent(org.motechproject.event.MotechEvent) JobsSearchSettings(org.motechproject.scheduler.contract.JobsSearchSettings) RunOnceSchedulableJob(org.motechproject.scheduler.contract.RunOnceSchedulableJob) Test(org.junit.Test)

Aggregations

RunOnceSchedulableJob (org.motechproject.scheduler.contract.RunOnceSchedulableJob)15 Test (org.junit.Test)11 MotechEvent (org.motechproject.event.MotechEvent)10 HashMap (java.util.HashMap)7 CronSchedulableJob (org.motechproject.scheduler.contract.CronSchedulableJob)4 RepeatingSchedulableJob (org.motechproject.scheduler.contract.RepeatingSchedulableJob)4 DateTime (org.joda.time.DateTime)3 JobBasicInfo (org.motechproject.scheduler.contract.JobBasicInfo)3 JobsSearchSettings (org.motechproject.scheduler.contract.JobsSearchSettings)3 ArrayList (java.util.ArrayList)2 DateUtil.newDateTime (org.motechproject.commons.date.util.DateUtil.newDateTime)2 Date (java.util.Date)1 Period (org.joda.time.Period)1 Before (org.junit.Before)1 Time (org.motechproject.commons.date.model.Time)1 EventListener (org.motechproject.event.listener.EventListener)1 MotechListener (org.motechproject.event.listener.annotations.MotechListener)1 DayOfWeekSchedulableJob (org.motechproject.scheduler.contract.DayOfWeekSchedulableJob)1 JobDetailedInfo (org.motechproject.scheduler.contract.JobDetailedInfo)1 RepeatingPeriodSchedulableJob (org.motechproject.scheduler.contract.RepeatingPeriodSchedulableJob)1