use of org.motechproject.scheduler.contract.RepeatingSchedulableJob in project motech by motech.
the class TestEventListener method shouldThrowExceptionForNullStartTime.
@Test(expected = IllegalArgumentException.class)
public void shouldThrowExceptionForNullStartTime() throws SchedulerException {
Map<String, Object> params = new HashMap<>();
params.put(MotechSchedulerService.JOB_ID_KEY, "job_id");
schedulerService.scheduleRepeatingJob(new RepeatingSchedulableJob(new MotechEvent("test_event", params), DateTimeConstants.SECONDS_PER_DAY, null, newDateTime(2020, 7, 18, 12, 0, 0), false));
}
use of org.motechproject.scheduler.contract.RepeatingSchedulableJob in project motech by motech.
the class MotechSchedulerDatabaseServiceImplBundleIT method shouldGetScheduledJobsBasicInfo.
@Test
public void shouldGetScheduledJobsBasicInfo() 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_2", params), "0 0 12 * * ?"));
schedulerService.scheduleRunOnceJob(new RunOnceSchedulableJob(new MotechEvent("test_event_2", params), newDateTime(CURRENT_YEAR + 6, 7, 15, 12, 0, 0)));
schedulerService.scheduleRepeatingJob(new RepeatingSchedulableJob(new MotechEvent("test_event_2", params), DateTimeConstants.SECONDS_PER_DAY, newDateTime(CURRENT_YEAR + 6, 7, 15, 12, 0, 0), newDateTime(CURRENT_YEAR + 6, 7, 18, 12, 0, 0), false));
schedulerService.scheduleRepeatingPeriodJob(new RepeatingPeriodSchedulableJob(new MotechEvent("test_event_2", params), newDateTime(CURRENT_YEAR + 6, 7, 15, 12, 0, 0), newDateTime(CURRENT_YEAR + 6, 7, 18, 12, 0, 0), new Period(4, 0, 0, 0), false));
for (String groupName : scheduler.getJobGroupNames()) {
for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) {
if (jobKey.getName().equals("test_event_2-job_id")) {
scheduler.pauseJob(jobKey);
}
}
}
List<JobBasicInfo> expectedJobBasicInfos = new ArrayList<>();
expectedJobBasicInfos.add(new JobBasicInfo(JobBasicInfo.ACTIVITY_NOTSTARTED, JobBasicInfo.STATUS_PAUSED, "test_event_2-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));
expectedJobBasicInfos.add(new JobBasicInfo(JobBasicInfo.ACTIVITY_NOTSTARTED, JobBasicInfo.STATUS_OK, "test_event_2-job_id-runonce", DEFAULT_GROUP, format("%s-07-15 12:00:00", CURRENT_YEAR + 6), format("%s-07-15 12:00:00", CURRENT_YEAR + 6), format("%s-07-15 12:00:00", CURRENT_YEAR + 6), JobBasicInfo.JOBTYPE_RUNONCE, "", false));
expectedJobBasicInfos.add(new JobBasicInfo(JobBasicInfo.ACTIVITY_NOTSTARTED, JobBasicInfo.STATUS_OK, "test_event_2-job_id-repeat", DEFAULT_GROUP, format("%s-07-15 12:00:00", CURRENT_YEAR + 6), format("%s-07-15 12:00:00", CURRENT_YEAR + 6), format("%s-07-18 12:00:00", CURRENT_YEAR + 6), JobBasicInfo.JOBTYPE_REPEATING, "", false));
expectedJobBasicInfos.add(new JobBasicInfo(JobBasicInfo.ACTIVITY_NOTSTARTED, JobBasicInfo.STATUS_OK, "test_event_2-job_id-period", DEFAULT_GROUP, format("%s-07-15 12:00:00", CURRENT_YEAR + 6), format("%s-07-15 12:00:00", CURRENT_YEAR + 6), format("%s-07-18 12:00:00", CURRENT_YEAR + 6), JobBasicInfo.JOBTYPE_PERIOD, "", false));
List<JobBasicInfo> jobBasicInfos;
JobsSearchSettings jobsSearchSettings = getGridSettings(0, 10, "name", "asc");
jobBasicInfos = databaseService.getScheduledJobsBasicInfo(jobsSearchSettings);
int testJobsCount = 0;
for (JobBasicInfo job : jobBasicInfos) {
for (JobBasicInfo expectedJob : expectedJobBasicInfos) {
if (job.getName().equals(expectedJob.getName())) {
testJobsCount += 1;
assertEquals(expectedJob.getActivity(), job.getActivity());
assertEquals(expectedJob.getStatus(), job.getStatus());
assertEquals(expectedJob.getStartDate(), job.getStartDate());
assertEquals(expectedJob.getNextFireDate(), job.getNextFireDate());
}
}
}
assertEquals(4, testJobsCount);
} finally {
stopFakingTime();
}
}
use of org.motechproject.scheduler.contract.RepeatingSchedulableJob in project motech by motech.
the class SchedulableJobValidatorTest method shouldThrowIllegalArgumentExceptionIfMotechEventIsNullInRepeatingSchedulableJob.
@Test(expected = IllegalArgumentException.class)
public void shouldThrowIllegalArgumentExceptionIfMotechEventIsNullInRepeatingSchedulableJob() {
RepeatingSchedulableJob job = new RepeatingSchedulableJob(null, 10, 100, DateTime.now().plusHours(1), null, true, true, false);
SchedulableJobValidator.validateRepeatingSchedulableJob(job);
}
use of org.motechproject.scheduler.contract.RepeatingSchedulableJob in project motech by motech.
the class SchedulerChannelProviderBundleIT method setUp.
@Before
public void setUp() {
if (channelProvider == null) {
channelProvider = (SchedulerChannelProvider) bundleContext.getService(bundleContext.getServiceReference("org.motechproject.tasks.service.DynamicChannelProvider"));
}
Map<String, Object> params = new HashMap<>();
params.put(MotechSchedulerService.JOB_ID_KEY, "job_id");
schedulerService.scheduleJob(new CronSchedulableJob(new MotechEvent(TEST_EVENT, params), "0 0 12 * * ?"));
schedulerService.scheduleRunOnceJob(new RunOnceSchedulableJob(new MotechEvent(TEST_EVENT, params), DateTime.now().plusDays(1)));
schedulerService.scheduleRepeatingJob(new RepeatingSchedulableJob(new MotechEvent(TEST_EVENT, params), DateTimeConstants.SECONDS_PER_DAY, DateTime.now().plusHours(1), DateTime.now().plusHours(3), false));
}
use of org.motechproject.scheduler.contract.RepeatingSchedulableJob in project motech by motech.
the class SchedulableJobBuilder method buildRepeatingSchedulableJob.
private static SchedulableJob buildRepeatingSchedulableJob(Trigger trigger, JobDataMap dataMap) {
RepeatingSchedulableJob job = new RepeatingSchedulableJob();
long interval;
if (trigger instanceof CalendarIntervalTrigger) {
CalendarIntervalTrigger calendarTrigger = (CalendarIntervalTrigger) trigger;
interval = calendarTrigger.getRepeatInterval();
} else {
SimpleTrigger simpleTrigger = (SimpleTrigger) trigger;
job.setRepeatCount(simpleTrigger.getRepeatCount());
interval = simpleTrigger.getRepeatInterval() / SECOND;
}
job.setEndDate(getEndDate(trigger));
job.setRepeatIntervalInSeconds((int) interval);
job.setIgnorePastFiresAtStart(dataMap.getBoolean(IGNORE_PAST_FIRES_AT_START));
job.setUseOriginalFireTimeAfterMisfire(dataMap.getBoolean(USE_ORIGINAL_FIRE_TIME_AFTER_MISFIRE));
return job;
}
Aggregations