private boolean setDefaultCronExpressionWhenDisablingContinuousExectution( JobConfiguration newObject, JobConfiguration persistedObject ) { return ( !newObject.isContinuousExecution() && persistedObject.isContinuousExecution() ) && newObject.getCronExpression().equals( CONTINOUS_CRON ); }
public boolean isJobConfigurationRunning( JobConfiguration jobConfiguration ) { if ( jobConfiguration.isInMemoryJob() ) { return false; } return !jobConfiguration.isContinuousExecution() && runningJobConfigurations.stream().anyMatch( jobConfig -> jobConfig.getJobType().equals( jobConfiguration.getJobType() ) && !jobConfig.isContinuousExecution() ); }
@Override public <T extends IdentifiableObject> List<ErrorReport> validate( T object, ObjectBundle bundle ) { if ( !JobConfiguration.class.isInstance( object ) ) { return new ArrayList<>(); } JobConfiguration jobConfiguration = (JobConfiguration) object; List<ErrorReport> errorReports = new ArrayList<>( validateInternal( jobConfiguration ) ); if ( errorReports.size() == 0 ) { jobConfiguration.setNextExecutionTime( null ); if ( jobConfiguration.isContinuousExecution() ) { jobConfiguration.setCronExpression( CONTINOUS_CRON ); } log.info( "Validation of '" + jobConfiguration.getName() + "' succeeded" ); } else { log.info( "Validation of '" + jobConfiguration.getName() + "' failed." ); log.info( errorReports ); } return errorReports; }
if ( jobConfiguration.isContinuousExecution() ) if ( jobConfig.isContinuousExecution() )
|| (!jobConfig.isContinuousExecution() && oldExecutionTime != null && oldExecutionTime.compareTo( now ) < 0) )
@Override public int compareTo( IdentifiableObject jobConfiguration ) { JobConfiguration compareJobConfiguration = (JobConfiguration) jobConfiguration; if ( jobType != compareJobConfiguration.getJobType() ) { return -1; } if ( jobStatus != compareJobConfiguration.getJobStatus() ) { return -1; } if ( jobParameters != compareJobConfiguration.getJobParameters() ) { return -1; } if ( continuousExecution != compareJobConfiguration.isContinuousExecution() ) { return -1; } if ( enabled != compareJobConfiguration.isEnabled() ) { return -1; } if ( !cronExpression.equals( compareJobConfiguration.getCronExpression() ) ) { return 1; } return -1; }
if ( !jobConfiguration.isContinuousExecution() )
/** * Set status properties of job after finish. If the job was executed manually and the job is disabled we want * to set the status back to DISABLED. * * @param clock Clock for keeping track of time usage * @param schedulingManager reference to scheduling manager * @param jobConfiguration the job configuration */ private void setFinishingStatus( Clock clock, SchedulingManager schedulingManager, JobConfiguration jobConfiguration ) { if ( jobConfiguration.isInMemoryJob() ) { return; } if ( !jobConfiguration.isContinuousExecution() ) { jobConfiguration.setJobStatus( JobStatus.SCHEDULED ); } if ( !jobConfiguration.isEnabled() ) { jobConfiguration.setJobStatus( JobStatus.DISABLED ); } jobConfiguration.setNextExecutionTime( null ); jobConfiguration.setLastExecuted( new Date() ); jobConfiguration.setLastRuntimeExecution( clock.time() ); schedulingManager.jobConfigurationFinished( jobConfiguration ); }