else if(jobExecution.getStatus().equals(BatchStatus.STOPPED)) { stepExecution.setStatus(BatchStatus.STOPPED);
} else if(previousJobExecution.getStatus().equals(BatchStatus.COMPLETED)) { throw new JobExecutionAlreadyCompleteException("The requested job has already completed"); if(jobExecution.getStatus().equals(BatchStatus.ABANDONED)) { throw new JobRestartException("JobExecution ID: " + jobExecution.getId() + " is abandoned and attempted to be restarted.");
assertTrue("Step execution status should be STOPPED but got: " + stepExecutionStatus, stepExecutionStatus.equals(BatchStatus.STOPPED)); assertTrue("Job execution status should be STOPPED but got:" + jobExecutionStatus, jobExecutionStatus.equals(BatchStatus.STOPPED)); restartStepExecutionStatus.equals(BatchStatus.COMPLETED)); restartJobExecutionStatus.equals(BatchStatus.COMPLETED));
boolean isRestart = (lastStepExecution != null && !lastStepExecution.getStatus().equals( BatchStatus.COMPLETED));
private boolean isComplete(BatchStatus status) { return status.equals(BatchStatus.COMPLETED) || status.isGreaterThan(BatchStatus.STARTED); }
private boolean isComplete(BatchStatus status) { return status.equals(BatchStatus.COMPLETED) || status.isGreaterThan(BatchStatus.STARTED); }
@Router public List<String> routeJobExecution(JobExecution jobExecution) { final List<String> routeToChannels = new ArrayList<String>(); if (jobExecution.getStatus().equals(BatchStatus.FAILED)) { routeToChannels.add("jobRestarts"); } else { if (jobExecution.getStatus().equals(BatchStatus.COMPLETED)) { routeToChannels.add("completeApplication"); } routeToChannels.add("notifiableExecutions"); } return routeToChannels; } }
@Router public List<String> routeJobExecution(JobExecution jobExecution) { final List<String> routeToChannels = new ArrayList<String>(); if (jobExecution.getStatus().equals(BatchStatus.FAILED)) { routeToChannels.add("jobRestarts"); } else { if (jobExecution.getStatus().equals(BatchStatus.COMPLETED)) { routeToChannels.add("completeApplication"); } routeToChannels.add("notifiableExecutions"); } return routeToChannels; } }
@Router public List<String> routeJobExecution(JobExecution jobExecution) { final List<String> routeToChannels = new ArrayList<String>(); if (jobExecution.getStatus().equals(BatchStatus.FAILED)) { routeToChannels.add("jobRestarts"); } else { if (jobExecution.getStatus().equals(BatchStatus.COMPLETED)) { routeToChannels.add("completeApplication"); } routeToChannels.add("notifiableExecutions"); } return routeToChannels; } }
@Router public List<String> routeJobExecution(JobExecution jobExecution) { final List<String> routeToChannels = new ArrayList<String>(); if (jobExecution.getStatus().equals(BatchStatus.FAILED)) { routeToChannels.add("jobRestarts"); } else { if (jobExecution.getStatus().equals(BatchStatus.COMPLETED)) { routeToChannels.add("completeApplication"); } routeToChannels.add("notifiableExecutions"); } return routeToChannels; } }
@Router public String routeJobExecution(JobExecution jobExecution) { if (jobExecution.getStatus().equals(BatchStatus.FAILED)) { return "jobRestarts"; } else { return "notifiableExecutions"; } } }
public void restartJobs(String jobName, BatchStatus status) throws NoSuchJobException, JobInstanceAlreadyCompleteException, NoSuchJobExecutionException, JobRestartException, JobParametersInvalidException, NoSuchJobInstanceException, JobExecutionAlreadyRunningException { // -- We are retrieving ten per ten job instances final int count = 10; for (int start = 0; ; start += count) { List<Long> jobInstanceIds = getJobInstances(jobName, start, count); LOGGER.debug("Number of jobInstanceIds={} start={} count={}.", new Object[]{jobInstanceIds.size(), start, count}); if (jobInstanceIds.size() == 0) { return; } for (Long jobInstanceId : jobInstanceIds) { if (getStatus(jobInstanceId).equals(status)) { restart(jobInstanceId); } } } }
@Override public ExitStatus afterStep(StepExecution stepExecution) { ExitStatus finalStatus = null; if (stepExecution.getStatus().equals(BatchStatus.COMPLETED)) { if (executionContext.containsKey(keyName)) { finalStatus = new ExitStatus("COMPLETED_WITH_60M_DELAY"); } } return finalStatus; }
@Override public Integer call() throws JobExecutionException { Integer batchExitStatus = 0; JobLauncher jobLauncher = getJobLauncher(); Job job = getJob(); JobParameters jobParameters = getJobParameters(); JobExecution jobExecution = jobLauncher.run(job, jobParameters); BatchStatus batchStatus = jobExecution.getStatus(); if (!batchStatus.equals(BatchStatus.COMPLETED)) { batchExitStatus = 1; } LOGGER.info("Exit with status : " + batchStatus); return batchExitStatus; }
@Override public Integer call() throws JobExecutionException { Integer batchExitStatus = 0; JobLauncher jobLauncher = getJobLauncher(); Job job = getJob(); JobParameters jobParameters = getJobParameters(); JobExecution jobExecution = jobLauncher.run(job, jobParameters); BatchStatus batchStatus = jobExecution.getStatus(); if (!batchStatus.equals(BatchStatus.COMPLETED)) { batchExitStatus = 1; } LOGGER.info("Exit with status : " + batchStatus); return batchExitStatus; }
private void monitorJobExecutions() { RepeatTemplate template = new RepeatTemplate(); Date startDate = new Date(); template.iterate(context -> { List<JobExecution> failedJobExecutions = new ArrayList<>(); RepeatStatus repeatStatus = RepeatStatus.FINISHED; for (JobExecution jobExecution : jobExecutionList) { JobExecution currentJobExecution = taskJobExplorer.getJobExecution(jobExecution.getId()); BatchStatus batchStatus = currentJobExecution.getStatus(); if (batchStatus.isRunning()) { repeatStatus = RepeatStatus.CONTINUABLE; } if (batchStatus.equals(BatchStatus.FAILED)) { failedJobExecutions.add(jobExecution); } } Thread.sleep(taskBatchProperties.getFailOnJobFailurePollInterval()); if (repeatStatus.equals(RepeatStatus.FINISHED) && failedJobExecutions.size() > 0) { throwJobFailedException(failedJobExecutions); } return repeatStatus; }); }
private void monitorJobExecutions() { RepeatTemplate template = new RepeatTemplate(); Date startDate = new Date(); template.iterate(context -> { List<JobExecution> failedJobExecutions = new ArrayList<>(); RepeatStatus repeatStatus = RepeatStatus.FINISHED; for (JobExecution jobExecution : jobExecutionList) { JobExecution currentJobExecution = taskJobExplorer.getJobExecution(jobExecution.getId()); BatchStatus batchStatus = currentJobExecution.getStatus(); if (batchStatus.isRunning()) { repeatStatus = RepeatStatus.CONTINUABLE; } if (batchStatus.equals(BatchStatus.FAILED)) { failedJobExecutions.add(jobExecution); } } Thread.sleep(taskBatchProperties.getFailOnJobFailurePollInterval()); if (repeatStatus.equals(RepeatStatus.FINISHED) && failedJobExecutions.size() > 0) { throwJobFailedException(failedJobExecutions); } return repeatStatus; }); }
public JobExecution launch(Job job, JobParameters jobParameters) throws JobExecutionAlreadyRunningException, JobRestartException, JobInstanceAlreadyCompleteException, JobParametersInvalidException, Exception { //JobParameters jobParameters = new JobParametersBuilder() //.addString(ConfigSparqlExportJob.JOBPARAM_SERVICE_URI, workflowDesc, true) //.toJobParameters(); JobExecution result = config.jobRepository().getLastJobExecution(job.getName(), jobParameters); // If there was a prior job, return its execution context BatchStatus status = result == null ? null : result.getStatus(); if(status == null || !(status.isRunning() || status.equals(BatchStatus.COMPLETED))) { result = config.jobLauncher().run(job, jobParameters); } return result; }
public JobExecution launchJob(String workflow) throws Exception { Map<String, Object> data = gson.fromJson(workflow, Map.class); //String normalized = gson.toJson(data); JobRepository jobRepository = config.jobRepository(); JobLauncher jobLauncher = config.jobLauncher(); Job job = null; JobParameters jobParameters = new JobParametersBuilder() .addString(JobLauncherWorkflow.JOB_CONTEXT, workflow, true) .toJobParameters(); JobExecution result = jobRepository.getLastJobExecution(job.getName(), jobParameters); // If there was a prior job, return its execution context BatchStatus status = result == null ? null : result.getStatus(); if(status != null) { if(status.isRunning() || status.equals(BatchStatus.COMPLETED)) { return result; } } result = jobLauncher.run(job, jobParameters); return result; } /*
else if(jobExecution.getStatus().equals(BatchStatus.STOPPED)) { stepExecution.setStatus(BatchStatus.STOPPED);