public void processIntervalTrigger(final IntervalTriggerDetail intervalTriggerDetails) throws ParseException, SchedulerException, InternalError { Trigger schedTrigger = null; if (SECOND.equals(intervalTriggerDetails.getRepeatUnit())) { schedTrigger = TriggerUtils.makeSecondlyTrigger(intervalTriggerDetails.getRepeatInterval()); } else if (MINUTE.equals(intervalTriggerDetails.getRepeatUnit())) { schedTrigger = TriggerUtils.makeMinutelyTrigger(intervalTriggerDetails.getRepeatInterval()); } else if (HOUR.equals(intervalTriggerDetails.getRepeatUnit())) { schedTrigger = TriggerUtils.makeHourlyTrigger(intervalTriggerDetails.getRepeatInterval()); } else { throw new InternalError( "Could not work out which interval to use for the schedule of an @" + Every.class.getName() + " observer"); } schedTrigger.setJobGroup(SCHEDULE_JOB_GROUP); scheduleJob(schedTrigger, intervalTriggerDetails); }