private boolean isSubmitted(ScheduledTask<?> scheduledTask) { return SUBMITTED.equals(scheduledTask.getTaskState()) || SLEEPING.equals(scheduledTask.getTaskState()); }
static ScheduledTask<?> getTaskByName(final NexusScheduler nexusScheduler, final String name) { if (name == null) { return null; } final Map<String, List<ScheduledTask<?>>> taskMap = nexusScheduler.getAllTasks(); for (List<ScheduledTask<?>> taskList : taskMap.values()) { for (ScheduledTask<?> task : taskList) { if (task.getName().equals(name)) { return task; } } } return null; }
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; }
@Override public boolean allowConcurrentExecution(Map<String, List<ScheduledTask<?>>> activeTasks) { if (activeTasks.containsKey(ID)) { for (ScheduledTask<?> scheduledTask : activeTasks.get(ID)) { if (RUNNING.equals(scheduledTask.getTaskState())) { if (conflictsWith((MergeMetadataTask) scheduledTask.getTask())) { return false; } } } } return true; }
@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; }
SchedulerTask<?> st = task.getSchedulerTask(); item.setResourceURI( createChildReference( request, this, task.getId() ).toString() ); item.setLastRunResult( getLastRunResult( task ) ); item.setId( task.getId() ); item.setName( task.getName() ); item.setStatus( task.getTaskState().toString() ); item.setReadableStatus( getReadableState( task.getTaskState() ) ); item.setTypeId( task.getType() ); ScheduledTaskDescriptor descriptor = getNexusConfiguration().getScheduledTaskDescriptor( task.getType() ); if ( descriptor != null ) item.setCreated( task.getScheduledAt() == null ? "n/a" : task.getScheduledAt().toString() ); item.setLastRunTime( task.getLastRun() == null ? "n/a" : task.getLastRun().toString() ); final Date nextRunTime = getNextRunTime( task ); item.setNextRunTime( nextRunTime == null ? "n/a" : nextRunTime.toString() ); if ( task.getScheduledAt() != null ) item.setCreatedInMillis( task.getScheduledAt().getTime() ); if ( task.getLastRun() != null ) item.setLastRunTimeInMillis( task.getLastRun().getTime() ); item.setSchedule( getScheduleShortName( task.getSchedule() ) ); item.setEnabled( task.isEnabled() );
storeableTask.setEnabled( task.isEnabled() ); storeableTask.setId( task.getId() ); storeableTask.setName( task.getName() ); storeableTask.setType( task.getType() ); storeableTask.setStatus( task.getTaskState().name() ); if ( task.getLastRun() != null ) storeableTask.setLastRun( task.getLastRun().getTime() ); if ( task.getNextRun() != null ) storeableTask.setNextRun( task.getNextRun().getTime() ); for ( String key : task.getTaskParams().keySet() ) props.setValue( task.getTaskParams().get( key ) ); Schedule schedule = task.getSchedule(); CScheduleConfig storeableSchedule = new CScheduleConfig();
TaskState state = task.getTaskState(); if ( TaskState.RUNNING.equals( state ) || TaskState.CANCELLING.equals( state ) || TaskState.SLEEPING.equals( state ) ) task.setEnabled( resource.isEnabled() ); task.setName( getModelName( resource ) ); task.setSchedule( getModelSchedule( resource ) ); task.getTaskParams().put( prop.getKey(), prop.getValue() ); task.reset(); resourceStatus.getResource().setId( task.getId() ); resourceStatus.setResourceURI( createChildReference( request, this, task.getId() ).toString() ); resourceStatus.setStatus( task.getTaskState().toString() ); resourceStatus.setReadableStatus( getReadableState( task.getTaskState() ) ); resourceStatus.setCreated( task.getScheduledAt() == null ? "n/a" : task.getScheduledAt().toString() ); resourceStatus.setLastRunResult( getLastRunResult( task ) ); resourceStatus.setLastRunTime( task.getLastRun() == null ? "n/a" : task.getLastRun().toString() ); resourceStatus.setNextRunTime( task.getNextRun() == null ? "n/a" : task.getNextRun().toString() ); if ( task.getScheduledAt() != null ) resourceStatus.setCreatedInMillis( task.getScheduledAt().getTime() ); if ( task.getLastRun() != null ) resourceStatus.setLastRunTimeInMillis( task.getLastRun().getTime() );
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())) {
ScheduledTask<?> task = getNexusScheduler().getTaskById(scheduledServiceId); task.runNow(); ScheduledServiceResourceStatus resourceStatus = new ScheduledServiceResourceStatus(); resourceStatus.setResource(resource); resourceStatus.setResourceURI(createChildReference(request, this, task.getId()).toString()); resourceStatus.setStatus(task.getTaskState().toString()); resourceStatus.setReadableStatus(getReadableState(task.getTaskState())); resourceStatus.setCreated(task.getScheduledAt() == null ? "n/a" : task.getScheduledAt().toString()); resourceStatus.setLastRunResult(TaskState.BROKEN.equals(task.getTaskState()) ? "Error" : "Ok"); resourceStatus.setLastRunTime(task.getLastRun() == null ? "n/a" : task.getLastRun().toString()); resourceStatus.setNextRunTime(task.getNextRun() == null ? "n/a" : task.getNextRun().toString()); if (task.getScheduledAt() != null) { resourceStatus.setCreatedInMillis(task.getScheduledAt().getTime()); if (task.getLastRun() != null) { resourceStatus.setLastRunTimeInMillis(task.getLastRun().getTime()); if (task.getNextRun() != null) { resourceStatus.setNextRunTimeInMillis(task.getNextRun().getTime());
task.setEnabled(serviceResource.isEnabled()); resourceStatus.setResource(serviceResource); resourceStatus.getResource().setId(task.getId()); resourceStatus.setResourceURI(createChildReference(request, this, task.getId()).toString()); resourceStatus.setStatus(task.getTaskState().toString()); resourceStatus.setReadableStatus(getReadableState(task.getTaskState())); resourceStatus.setCreated(task.getScheduledAt() == null ? "n/a" : task.getScheduledAt().toString()); resourceStatus.setLastRunResult(TaskState.BROKEN.equals(task.getTaskState()) ? "Error" : "Ok"); resourceStatus.setLastRunTime(task.getLastRun() == null ? "n/a" : task.getLastRun().toString()); resourceStatus.setNextRunTime(task.getNextRun() == null ? "n/a" : task.getNextRun().toString()); if (task.getScheduledAt() != null) { resourceStatus.setCreatedInMillis(task.getScheduledAt().getTime()); if (task.getLastRun() != null) { resourceStatus.setLastRunTimeInMillis(task.getLastRun().getTime()); if (task.getNextRun() != null) { resourceStatus.setNextRunTimeInMillis(task.getNextRun().getTime());
if ( task.getTaskState().isExecuting() && DefaultScheduledTask.class.isAssignableFrom( task.getClass() ) && repositorySetIntersectionIsNotEmpty( task.getTaskParams().get( getRepositoryFieldId() ) ) ) "Task " + task.getName() + " is already running and is conflicting with task " + this.getClass().getName() );
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); } } }
public <T> void addTask( ScheduledTask<T> task ) if ( RunNowSchedule.class.isAssignableFrom( task.getSchedule().getClass() ) ) CScheduledTask foundTask = findTask( task.getId(), tasks );
public ScheduledTask<?> getTaskById(String id) throws NoSuchTaskException { if (StringUtils_isEmpty(id)) { throw new IllegalArgumentException("The Tasks cannot have null IDs!"); } final Collection<List<ScheduledTask<?>>> activeTasks = getAllTasks().values(); for (List<ScheduledTask<?>> tasks : activeTasks) { for (ScheduledTask<?> task : tasks) { if (task.getId().equals(id)) { return task; } } } throw new NoSuchTaskException(id); }
/** * Returns the alert email for a task. The alert email is stored as a private task patamater. * * @param task a task * * @return alert email if present, null otherwise */ public static String getAlertEmail( final ScheduledTask<?> task ) { if( task != null && task.getTaskParams() != null ) { return task.getTaskParams().get( NexusTask.ALERT_EMAIL_KEY ); } return null; }
boolean isExposed = true; SchedulerTask<?> st = task.getSchedulerTask(); item.setResourceURI(createChildReference(request, this, task.getId()).toString()); item.setLastRunResult(getLastRunResult(task)); item.setId(task.getId()); item.setName(task.getName()); item.setStatus(task.getTaskState().toString()); item.setReadableStatus(getReadableState(task.getTaskState())); item.setTypeId(task.getType()); ScheduledTaskDescriptor descriptor = getNexusConfiguration().getScheduledTaskDescriptor(task.getType()); if (descriptor != null) { item.setTypeName(descriptor.getName()); item.setCreated(task.getScheduledAt() == null ? "n/a" : task.getScheduledAt().toString()); item.setLastRunTime(task.getLastRun() == null ? "n/a" : task.getLastRun().toString()); final Date nextRunTime = getNextRunTime(task); item.setNextRunTime(nextRunTime == null ? "n/a" : nextRunTime.toString()); if (task.getScheduledAt() != null) { item.setCreatedInMillis(task.getScheduledAt().getTime()); if (task.getLastRun() != null) { item.setLastRunTimeInMillis(task.getLastRun().getTime()); item.setSchedule(getScheduleShortName(task.getSchedule())); item.setEnabled(task.isEnabled());
TaskState state = task.getTaskState(); if (TaskState.RUNNING.equals(state) || TaskState.CANCELLING.equals(state) || TaskState.SLEEPING.equals(state)) { task.setEnabled(resource.isEnabled()); task.setName(getModelName(resource)); task.setSchedule(getModelSchedule(resource)); task.getTaskParams().put(prop.getKey(), prop.getValue()); task.reset(); resourceStatus.getResource().setId(task.getId()); resourceStatus.setResourceURI(createChildReference(request, this, task.getId()).toString()); resourceStatus.setStatus(task.getTaskState().toString()); resourceStatus.setReadableStatus(getReadableState(task.getTaskState())); resourceStatus.setCreated(task.getScheduledAt() == null ? "n/a" : task.getScheduledAt().toString()); resourceStatus.setLastRunResult(getLastRunResult(task)); resourceStatus.setLastRunTime(task.getLastRun() == null ? "n/a" : task.getLastRun().toString()); resourceStatus.setNextRunTime(task.getNextRun() == null ? "n/a" : task.getNextRun().toString()); if (task.getScheduledAt() != null) { resourceStatus.setCreatedInMillis(task.getScheduledAt().getTime()); if (task.getLastRun() != null) { resourceStatus.setLastRunTimeInMillis(task.getLastRun().getTime()); if (task.getNextRun() != null) {
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() ) )