private List<JobExecution> getRunningJobExecutions(String jobIdentifier) { List<JobExecution> jobExecutions = getJobExecutionsWithStatusGreaterThan(jobIdentifier, BatchStatus.COMPLETED); if (jobExecutions.isEmpty()) { return null; } List<JobExecution> result = new ArrayList<>(); for (JobExecution jobExecution : jobExecutions) { if (jobExecution.isRunning()) { result.add(jobExecution); } } return result.isEmpty() ? null : result; }
@Override public Set<JobExecution> findRunningJobExecutions(String jobName) { Set<JobExecution> result = new HashSet<>(); for (JobExecution exec : executionsById.values()) { if (!exec.getJobInstance().getJobName().equals(jobName) || !exec.isRunning()) { continue; } result.add(copy(exec)); } return result; }
@Override public void abandon(long jobExecutionId) throws NoSuchJobExecutionException, JobExecutionIsRunningException, JobSecurityException { org.springframework.batch.core.JobExecution jobExecution = jobExplorer.getJobExecution(jobExecutionId); if(jobExecution == null) { throw new NoSuchJobExecutionException("Unable to retrieve JobExecution for id " + jobExecutionId); } if(jobExecution.isRunning()) { throw new JobExecutionIsRunningException("Unable to abandon a job that is currently running"); } jobExecution.upgradeStatus(BatchStatus.ABANDONED); jobRepository.update(jobExecution); }
/** * Test method for * {@link org.springframework.batch.core.JobExecution#getEndTime()}. */ @Test public void testIsRunningWithStoppedExecution() { execution.setStartTime(new Date()); assertTrue(execution.isRunning()); execution.stop(); assertTrue(execution.isRunning()); assertTrue(execution.isStopping()); }
@Test public void testLaunchJob() throws Exception { final JobParameters jobParameters = new JobParametersBuilder().addLong("timestamp", System.currentTimeMillis()) .toJobParameters(); JobExecution jobExecution = jobLauncherTestUtils.launchJob(jobParameters); Thread.sleep(1000); assertEquals(BatchStatus.STARTED, jobExecution.getStatus()); assertTrue(jobExecution.isRunning()); jobExecution.stop(); int count = 0; while (jobExecution.isRunning() && count <= 10) { logger.info("Checking for end time in JobExecution: count=" + count); Thread.sleep(100); count++; } assertFalse("Timed out waiting for job to end.", jobExecution.isRunning()); assertEquals(BatchStatus.STOPPED, jobExecution.getStatus()); }
@Test public void testLaunchJob() throws Exception { JobExecution jobExecution = jobLauncherTestUtils.launchJob(); Thread.sleep(1000); assertEquals(BatchStatus.STARTED, jobExecution.getStatus()); assertTrue(jobExecution.isRunning()); assertNotNull(jobExecution.getVersion()); jobOperator.stop(jobExecution.getId()); int count = 0; while(jobExecution.isRunning() && count <= 10){ logger.info("Checking for end time in JobExecution: count="+count); Thread.sleep(100); count++; } assertFalse("Timed out waiting for job to end.", jobExecution.isRunning()); assertEquals(BatchStatus.STOPPED, jobExecution.getStatus()); }
if (execution.isRunning() || execution.isStopping()) { throw new JobExecutionAlreadyRunningException("A job execution for this job is already running: " + jobInstance);
private List<JobExecution> getRunningJobExecutions(String jobIdentifier) { List<JobExecution> jobExecutions = getJobExecutionsWithStatusGreaterThan(jobIdentifier, BatchStatus.COMPLETED); if (jobExecutions.isEmpty()) { return null; } List<JobExecution> result = new ArrayList<JobExecution>(); for (JobExecution jobExecution : jobExecutions) { if (jobExecution.isRunning()) { result.add(jobExecution); } } return result.isEmpty() ? null : result; }
private List<JobExecution> getRunningJobExecutions(String jobIdentifier) { List<JobExecution> jobExecutions = getJobExecutionsWithStatusGreaterThan(jobIdentifier, BatchStatus.COMPLETED); if (jobExecutions.isEmpty()) { return null; } List<JobExecution> result = new ArrayList<JobExecution>(); for (JobExecution jobExecution : jobExecutions) { if (jobExecution.isRunning()) { result.add(jobExecution); } } return result.isEmpty() ? null : result; }
public boolean isJobRunning() { JobExecution jobExecution = getLatestJobExecution(jobName); return jobExecution==null ? false : jobExecution.isRunning(); }
private List<JobExecution> getRunningJobExecutions(String jobIdentifier) { List<JobExecution> jobExecutions = getJobExecutionsWithStatusGreaterThan(jobIdentifier, BatchStatus.COMPLETED); if (jobExecutions.isEmpty()) { return null; } List<JobExecution> result = new ArrayList<JobExecution>(); for (JobExecution jobExecution : jobExecutions) { if (jobExecution.isRunning()) { result.add(jobExecution); } } return result.isEmpty() ? null : result; }
@Override public Set<JobExecution> findRunningJobExecutions(String jobName) { Set<JobExecution> result = new HashSet<JobExecution>(); for (JobExecution exec : executionsById.values()) { if (!exec.getJobInstance().getJobName().equals(jobName) || !exec.isRunning()) { continue; } result.add(copy(exec)); } return result; }
public Set<JobExecution> findRunningJobExecutions(String jobName) { Set<JobExecution> result = new HashSet<JobExecution>(); for (JobExecution exec : executionsById.values()) { if (!exec.getJobInstance().getJobName().equals(jobName) || !exec.isRunning()) { continue; } result.add(copy(exec)); } return result; }
@Override public Set<JobExecution> findRunningJobExecutions(String jobName) { Set<JobExecution> result = new HashSet<JobExecution>(); for (JobExecution exec : executionsById.values()) { if (!exec.getJobInstance().getJobName().equals(jobName) || !exec.isRunning()) { continue; } result.add(copy(exec)); } return result; }
@Override public Set<JobExecution> findRunningJobExecutions(String jobName) { Set<JobExecution> result = new HashSet<JobExecution>(); for (JobExecution exec : executionsById.values()) { if (!exec.getJobInstance().getJobName().equals(jobName) || !exec.isRunning()) { continue; } result.add(copy(exec)); } return result; }
private void verifyProcessStatus(final Long jobInstanceId, final JobExecution jobExecution) { if (jobExecution == null) { throw new NoProcessException("Process {} does not exist. ", jobInstanceId); } if (jobExecution.isRunning() || jobExecution.isStopping()) { throw new ProcessStatusException("Process {} is still running or is stopping. Current status: {} ", jobInstanceId, jobExecution.getStatus()); } }
@Override public void abandon(long jobExecutionId) throws NoSuchJobExecutionException, JobExecutionIsRunningException, JobSecurityException { org.springframework.batch.core.JobExecution jobExecution = jobExplorer.getJobExecution(jobExecutionId); if(jobExecution == null) { throw new NoSuchJobExecutionException("Unable to retrieve JobExecution for id " + jobExecutionId); } if(jobExecution.isRunning()) { throw new JobExecutionIsRunningException("Unable to abandon a job that is currently running"); } jobExecution.upgradeStatus(BatchStatus.ABANDONED); jobRepository.update(jobExecution); }
@Override public void abandon(long jobExecutionId) throws NoSuchJobExecutionException, JobExecutionIsRunningException, JobSecurityException { org.springframework.batch.core.JobExecution jobExecution = jobExplorer.getJobExecution(jobExecutionId); if(jobExecution == null) { throw new NoSuchJobExecutionException("Unable to retrieve JobExecution for id " + jobExecutionId); } if(jobExecution.isRunning()) { throw new JobExecutionIsRunningException("Unable to abandon a job that is currently running"); } jobExecution.upgradeStatus(BatchStatus.ABANDONED); jobRepository.update(jobExecution); }