public static void portJob( SystemSettingManager systemSettingManager, JobConfiguration jobConfiguration, SettingKey systemKey ) { Date lastSuccessfulRun = (Date) systemSettingManager.getSystemSetting( systemKey ); if ( lastSuccessfulRun != null ) { jobConfiguration.setLastExecuted( lastSuccessfulRun ); jobConfiguration.setLastExecutedStatus( JobStatus.COMPLETED ); } } }
/** * 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 ); }
@Override public void preUpdate( IdentifiableObject object, IdentifiableObject persistedObject, ObjectBundle bundle ) { if ( !JobConfiguration.class.isInstance( object ) ) { return; } JobConfiguration newObject = (JobConfiguration) object; JobConfiguration persObject = (JobConfiguration) persistedObject; newObject.setLastExecuted( persObject.getLastExecuted() ); newObject.setLastExecutedStatus( persObject.getLastExecutedStatus() ); newObject.setLastRuntimeExecution( persObject.getLastRuntimeExecution() ); if ( setDefaultCronExpressionWhenDisablingContinuousExectution( newObject, persObject ) ) { newObject.setCronExpression( HOUR_CRON ); } schedulingManager.stopJob( (JobConfiguration) persistedObject ); }