@Bean public JobExecutionDecider decideIfGoodToContinue() { return new JobExecutionDecider() { int iteration = 0; @Override public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) { long postId = 0; try { postId = jobExecution.getExecutionContext().getLong("postId"); } catch (Exception e) { logger.info("FlowExecution Exception: " + e.getMessage()); } long iterations = jobExecution.getJobParameters().getLong("iterations"); if(iteration < iterations) { logger.info("ITERATING... POSTID = " + postId); iteration++; return YES; } else { logger.info("REPEATED 2X's. SKIPPING OPTIONAL STEP"); return NO; } } }; }
@Bean public JobExecutionDecider skippedDecider() { return new SkippedDecider(); }