@Override public boolean executeJob( JobConfiguration jobConfiguration ) { if ( jobConfiguration != null && !isJobConfigurationRunning( jobConfiguration ) ) { internalExecuteJobConfiguration( jobConfiguration ); return true; } else { return false; } }
private boolean ifJobInSystemStop( String jobKey ) { return !isJobInSystem( jobKey ) || internalStopJob( jobKey ); }
@Override public void scheduleJobWithStartTime( JobConfiguration jobConfiguration, Date startTime ) { if ( ifJobInSystemStop( jobConfiguration.getUid() ) ) { JobInstance jobInstance = new DefaultJobInstance(); if ( jobConfiguration.getUid() != null && !futures.containsKey( jobConfiguration.getUid() ) ) { ScheduledFuture<?> future = jobScheduler .schedule( () -> { try { jobInstance.execute( jobConfiguration, this, messageService, leaderManager ); } catch ( Exception e ) { log.error( DebugUtils.getStackTrace( e ) ); } }, startTime ); futures.put( jobConfiguration.getUid(), future ); log.info( "Scheduled job: " + jobConfiguration ); } } }
@Override public void scheduleJob( JobConfiguration jobConfiguration ) { if ( ifJobInSystemStop( jobConfiguration.getUid() ) ) { JobInstance jobInstance = new DefaultJobInstance(); if ( jobConfiguration.getUid() != null && !futures.containsKey( jobConfiguration.getUid() ) ) { ScheduledFuture<?> future = jobScheduler .schedule( () -> { try { jobInstance.execute( jobConfiguration, this, messageService, leaderManager ); } catch ( Exception e ) { log.error( DebugUtils.getStackTrace( e ) ); } }, new CronTrigger( jobConfiguration.getCronExpression() ) ); futures.put( jobConfiguration.getUid(), future ); log.info( "Scheduled job: " + jobConfiguration ); } } }
@Override public void stopJob( JobConfiguration jobConfiguration ) { if ( isJobInSystem( jobConfiguration.getUid() ) ) { jobConfiguration.setLastExecutedStatus( JobStatus.STOPPED ); jobConfigurationService.updateJobConfiguration( jobConfiguration ); internalStopJob( jobConfiguration.getUid() ); } }