private void getSchedulerDetails(Schedule schedule) { if (schedule != null && schedule.getIntervalScheduleInfo() != null) { IntervalScheduleInfo scheduleInfo = schedule.getIntervalScheduleInfo(); if (scheduleInfo.getFirstRunTime() != null) { Calendar cal = new GregorianCalendar(); cal.setTime(scheduleInfo.getFirstRunTime()); startHour = cal.get(Calendar.HOUR_OF_DAY); startMinute = cal.get(Calendar.MINUTE); intervalMillis = scheduleInfo.getIntervalInMillis(); } } }
public void setSchedule(Schedule schedule) { if (schedule == null) { deleteProperty(PROP_FREQUENCY); deleteProperty(PROP_START_TIME); } else { checkArgument(schedule.getType() == Schedule.Type.INTERVAL, "only interval schedules are supported"); IntervalScheduleInfo info = schedule.getIntervalScheduleInfo(); setProperty(PROP_FREQUENCY, String.valueOf(info.getIntervalInMillis())); if (info.getFirstRunTime() != null) { Calendar cal = new GregorianCalendar(); cal.setTime(info.getFirstRunTime()); setProperty(PROP_START_TIME, cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE)); } else { deleteProperty(PROP_START_TIME); } } }
private static Trigger getSimpleTrigger(final IntervalScheduleInfo info) { final Date startTime = (info.getFirstRunTime() != null) ? info.getFirstRunTime() : new Date(); final SimpleTrigger trigger = new SimpleTrigger(); trigger.setStartTime(startTime); if (info.getIntervalInMillis() == 0L) { trigger.setRepeatCount(0); } else { trigger.setRepeatCount(REPEAT_INDEFINITELY); trigger.setRepeatInterval(quantizeToMinutes(info.getIntervalInMillis())); } return trigger; }
@Override public void scheduleJob(@Nonnull JobId jobId, @Nonnull JobConfig jobConfig) throws SchedulerServiceException { if (jobConfig.getSchedule().getType() == Schedule.Type.CRON_EXPRESSION) { throw new IllegalArgumentException("The fallback scheduler does not support CRON expressions"); } // always unschedule the job - any exceptions in case the job is not scheduled are swallowed unscheduleJob(jobId); scheduledJobs.put(jobId, jobConfig); IntervalScheduleInfo interval = jobConfig.getSchedule().getIntervalScheduleInfo(); Map<String, Object> contextMap = ImmutableMap.of( KEY_JOB_CONFIG, jobConfig, KEY_JOB_ID, jobId, KEY_SCHEDULER_SERVICE, this); scheduler.scheduleJob(jobId.toString(), JobRunnerAdapter.class, contextMap, interval.getFirstRunTime(), interval.getIntervalInMillis()); }
private boolean storeSettings(Schedule newSchedule) { settings = scanService.getReportSettings(); LogScanReportSettings newSettings = new LogScanReportSettings.Builder() .enabled(enabled) .recipients(recipients) .schedule(newSchedule) .build(); if (newSettings.equals(settings)) { // no change validationLog.addFeedback("stp.scheduler.task.unchanged"); return false; } scanService.setReportSettings(newSettings); settings = newSettings; if (enabled) { validationLog.addFeedback("stp.scheduler.task.enabled", frequency, newSchedule.getIntervalScheduleInfo().getFirstRunTime()); } else { validationLog.addFeedback("stp.scheduler.task.disabled"); } return true; }
private static void addScheduleInfo(FieldMap fields, Schedule schedule) { switch (schedule.getType()) { case INTERVAL: fields.add(SCHED_TYPE, TYPE_INTERVAL); fields.add(INTERVAL_MILLIS, schedule.getIntervalScheduleInfo().getIntervalInMillis()); fields.add(FIRST_RUN, toLong(schedule.getIntervalScheduleInfo().getFirstRunTime())); return; case CRON_EXPRESSION: fields.add(SCHED_TYPE, TYPE_CRON); fields.add(CRON_EXPRESSION, schedule.getCronScheduleInfo().getCronExpression()); fields.add(TIME_ZONE, toTimeZoneId(schedule.getCronScheduleInfo().getTimeZone())); return; } throw badType(schedule.getType()); }