private void runFlow ( ) throws Exception { this . logger . info ( "Starting flows" ) ; runReadyJob ( this . flow ) ; updateFlow ( ) ; while ( ! this . flowFinished ) { synchronized ( this . mainSyncObj ) { if ( this . flowPaused ) { try { this . mainSyncObj . wait ( CHECK_WAIT_MS ) ; } catch ( final InterruptedException e ) { } continue ; } else { if ( this . retryFailedJobs ) { retryAllFailures ( ) ; } else if ( ! progressGraph ( ) ) { try { this . mainSyncObj . wait ( CHECK_WAIT_MS ) ; } catch ( final InterruptedException e ) { } } } } } this . logger . info ( "Finishing up flow. Awaiting Termination" ) ; this . executorService . shutdown ( ) ; updateFlow ( ) ; this . logger . info ( "Finished Flow" ) ; }
Main method that executes the jobs .