protected <T> Date getNextRunTime( ScheduledTask<T> task ) { Date nextRunTime = null; // Run now type tasks should never have a next run time if ( !task.getSchedule().getClass().isAssignableFrom( RunNowSchedule.class ) && task.getNextRun() != null ) { nextRunTime = task.getNextRun(); } return nextRunTime; }
item.setSchedule( getScheduleShortName( task.getSchedule() ) ); item.setEnabled( task.isEnabled() );
protected <T> Date getNextRunTime(ScheduledTask<T> task) { Date nextRunTime = null; // Run now type tasks should never have a next run time if (!task.getSchedule().getClass().isAssignableFrom(RunNowSchedule.class) && task.getNextRun() != null) { nextRunTime = task.getNextRun(); } return nextRunTime; }
item.setNextRunTimeInMillis(nextRunTime.getTime()); item.setSchedule(getScheduleShortName(task.getSchedule())); item.setEnabled(task.isEnabled());
@Override public boolean allowConcurrentSubmission(Map<String, List<ScheduledTask<?>>> activeTasks) { if (activeTasks.containsKey(ID)) { for (ScheduledTask<?> scheduledTask : activeTasks.get(ID)) { if (isSubmitted(scheduledTask) && conflictsWith((GenerateMetadataTask) scheduledTask.getTask()) && scheduledTask.getSchedule() instanceof RunNowSchedule) { throw new TaskAlreadyScheduledException(scheduledTask, "Found same task in scheduler queue."); } } } return true; }
public <T> void addTask( ScheduledTask<T> task ) if ( RunNowSchedule.class.isAssignableFrom( task.getSchedule().getClass() ) )
if (RunNowSchedule.class.isAssignableFrom(task.getSchedule().getClass()) || ManualRunSchedule.class.isAssignableFrom(task.getSchedule().getClass())) { resource = new ScheduledServiceBaseResource(); else if (OnceSchedule.class.isAssignableFrom(task.getSchedule().getClass())) { resource = new ScheduledServiceOnceResource(); OnceSchedule taskSchedule = (OnceSchedule) task.getSchedule(); ScheduledServiceOnceResource res = (ScheduledServiceOnceResource) resource; else if (HourlySchedule.class.isAssignableFrom(task.getSchedule().getClass())) { resource = new ScheduledServiceHourlyResource(); HourlySchedule taskSchedule = (HourlySchedule) task.getSchedule(); ScheduledServiceHourlyResource res = (ScheduledServiceHourlyResource) resource; else if (DailySchedule.class.isAssignableFrom(task.getSchedule().getClass())) { resource = new ScheduledServiceDailyResource(); DailySchedule taskSchedule = (DailySchedule) task.getSchedule(); ScheduledServiceDailyResource res = (ScheduledServiceDailyResource) resource; else if (WeeklySchedule.class.isAssignableFrom(task.getSchedule().getClass())) { resource = new ScheduledServiceWeeklyResource(); WeeklySchedule taskSchedule = (WeeklySchedule) task.getSchedule(); ScheduledServiceWeeklyResource res = (ScheduledServiceWeeklyResource) resource; else if (MonthlySchedule.class.isAssignableFrom(task.getSchedule().getClass())) {
if ( RunNowSchedule.class.isAssignableFrom( task.getSchedule().getClass() ) || ManualRunSchedule.class.isAssignableFrom( task.getSchedule().getClass() ) ) else if ( OnceSchedule.class.isAssignableFrom( task.getSchedule().getClass() ) ) OnceSchedule taskSchedule = (OnceSchedule) task.getSchedule(); ScheduledServiceOnceResource res = (ScheduledServiceOnceResource) resource; else if ( HourlySchedule.class.isAssignableFrom( task.getSchedule().getClass() ) ) HourlySchedule taskSchedule = (HourlySchedule) task.getSchedule(); ScheduledServiceHourlyResource res = (ScheduledServiceHourlyResource) resource; else if ( DailySchedule.class.isAssignableFrom( task.getSchedule().getClass() ) ) DailySchedule taskSchedule = (DailySchedule) task.getSchedule(); ScheduledServiceDailyResource res = (ScheduledServiceDailyResource) resource; else if ( WeeklySchedule.class.isAssignableFrom( task.getSchedule().getClass() ) ) WeeklySchedule taskSchedule = (WeeklySchedule) task.getSchedule(); ScheduledServiceWeeklyResource res = (ScheduledServiceWeeklyResource) resource; else if ( MonthlySchedule.class.isAssignableFrom( task.getSchedule().getClass() ) ) MonthlySchedule taskSchedule = (MonthlySchedule) task.getSchedule(); ScheduledServiceMonthlyResource res = (ScheduledServiceMonthlyResource) resource; else if ( CronSchedule.class.isAssignableFrom( task.getSchedule().getClass() ) )
private static boolean isTaskCompleted(ScheduledTask<?> task) { if (task.getSchedule() instanceof RunNowSchedule) { // runNow scheduled tasks will _dissapear_ when done. So, the fact they are PRESENT simply // means they are not YET complete return false; } else { final TaskState state = task.getTaskState(); if (task.getSchedule() instanceof ManualRunSchedule) { // MnuallRunSchedule stuff goes back to SUBMITTED state and sit there for next "kick" // but we _know_ it ran once at least if lastRun date != null AND is in some of the following // states // Note: I _think_ ManualRunScheduled task never go into WAITING state! (unverified claim) return task.getLastRun() != null && (TaskState.SUBMITTED.equals(state) || TaskState.WAITING.equals(state) || TaskState.FINISHED.equals(state) || TaskState.BROKEN.equals(state) || TaskState.CANCELLED.equals(state)); } else { // the rest of tasks are completed if in any of these statuses return TaskState.WAITING.equals(state) || TaskState.FINISHED.equals(state) || TaskState.BROKEN.equals(state) || TaskState.CANCELLED.equals(state); } } }
Schedule schedule = task.getSchedule(); CScheduleConfig storeableSchedule = new CScheduleConfig();