protected String getFrequencyName() { if (intervalMillis >= 0) { return frequencyToName(intervalMillis); } if (schedule == null || schedule.getIntervalScheduleInfo() == null) { return FREQUENCY_DAILY; } return frequencyToName(schedule.getIntervalScheduleInfo().getIntervalInMillis()); }
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(); } } }
private void deleteIfRunOnce() { if (jobDetails != null) { final IntervalScheduleInfo info = jobDetails.getSchedule().getIntervalScheduleInfo(); if (info != null && info.getIntervalInMillis() == 0L) { LOG.debug("deleteIfRunOnce: deleting completed job: {}", jobId); schedulerService.unscheduleJob(jobId); } } }
@Nullable private static String getCronExpression(final Schedule schedule) { final String cronExpression; if (schedule.getCronScheduleInfo() != null) { cronExpression = schedule.getCronScheduleInfo().getCronExpression(); } else if (schedule.getIntervalScheduleInfo() != null) { final long interval = schedule.getIntervalScheduleInfo().getIntervalInMillis(); cronExpression = new SimpleToCronTriggerConverter().convertToCronString(new Date(), interval).cronString; } else { cronExpression = null; } return cronExpression; }
public Trigger buildTrigger(Schedule schedule) throws SchedulerServiceException { switch (schedule.getType()) { case INTERVAL: return getSimpleTrigger(schedule.getIntervalScheduleInfo()); case CRON_EXPRESSION: return getCronTrigger(schedule.getCronScheduleInfo()); } throw new IllegalStateException("type=" + schedule.getType()); }
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); } } }
@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()); }
@Nonnull public String getSchedule() { final Schedule schedule = jobDetails.getSchedule(); switch(schedule.getType()) { case CRON_EXPRESSION: return schedule.getCronScheduleInfo().getCronExpression(); case INTERVAL: final long intervalInMillis = schedule.getIntervalScheduleInfo().getIntervalInMillis(); return intervalInMillis == 0 ? getText("admin.schedulerdetails.run.once") : formatDuration(intervalInMillis); default: return schedule.toString(); } }
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()); }
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; }