/** * Accessor for the job execution id. * * @return the jobExecutionId */ public Long getJobExecutionId() { if (jobExecution != null) { return jobExecution.getId(); } return null; }
public void register(Job job, org.springframework.batch.core.JobExecution jobExecution) throws DuplicateJobException { if(registry.containsKey(jobExecution.getId())) { throw new DuplicateJobException("This job execution has already been registered"); } else { registry.put(jobExecution.getId(), job); } }
@Override public Set<Long> getRunningExecutions(String jobName) throws NoSuchJobException { Set<Long> set = new LinkedHashSet<>(); for (JobExecution jobExecution : jobExplorer.findRunningJobExecutions(jobName)) { set.add(jobExecution.getId()); } if (set.isEmpty() && !jobRegistry.getJobNames().contains(jobName)) { throw new NoSuchJobException("No such job (either in registry or in historical data): " + jobName); } return set; }
/** * Detect whether a step execution belongs to this job execution. * @param jobExecution the current job execution * @param stepExecution an existing step execution * @return true if the {@link org.springframework.batch.core.StepExecution} is part of the {@link org.springframework.batch.core.JobExecution} */ private boolean stepExecutionPartOfExistingJobExecution(JobExecution jobExecution, StepExecution stepExecution) { return stepExecution != null && stepExecution.getJobExecutionId() != null && stepExecution.getJobExecutionId().equals(jobExecution.getId()); }
@Override public void saveJobExecution(JobExecution jobExecution) { Assert.isTrue(jobExecution.getId() == null, "jobExecution id is not null"); Long newId = currentId.getAndIncrement(); jobExecution.setId(newId); jobExecution.incrementVersion(); executionsById.put(newId, copy(jobExecution)); }
@Override public List<Long> getExecutions(long instanceId) throws NoSuchJobInstanceException { JobInstance jobInstance = jobExplorer.getJobInstance(instanceId); if (jobInstance == null) { throw new NoSuchJobInstanceException(String.format("No job instance with id=%d", instanceId)); } List<Long> list = new ArrayList<>(); for (JobExecution jobExecution : jobExplorer.getJobExecutions(jobInstance)) { list.add(jobExecution.getId()); } return list; }
@Override public void update(JobExecution jobExecution) { Assert.notNull(jobExecution, "JobExecution cannot be null."); Assert.notNull(jobExecution.getJobId(), "JobExecution must have a Job ID set."); Assert.notNull(jobExecution.getId(), "JobExecution must be already saved (have an id assigned)."); jobExecution.setLastUpdated(new Date(System.currentTimeMillis())); jobExecutionDao.synchronizeStatus(jobExecution); jobExecutionDao.updateJobExecution(jobExecution); }
@Override public void updateExecutionContext(final JobExecution jobExecution) { Long executionId = jobExecution.getId(); ExecutionContext executionContext = jobExecution.getExecutionContext(); Assert.notNull(executionId, "ExecutionId must not be null."); Assert.notNull(executionContext, "The ExecutionContext must not be null."); String serializedContext = serializeContext(executionContext); persistSerializedContext(executionId, serializedContext, UPDATE_JOB_EXECUTION_CONTEXT); }
@Override public void updateExecutionContext(JobExecution jobExecution) { ExecutionContext executionContext = jobExecution.getExecutionContext(); if (executionContext != null) { contexts.put(ContextKey.job(jobExecution.getId()), copy(executionContext)); } }
private Map<String, Object> getStepExecutionAsMap(JobExecution jobExecution, String stepName) { long jobExecutionId = jobExecution.getId(); return jdbcTemplate.queryForMap( "SELECT * from BATCH_STEP_EXECUTION where JOB_EXECUTION_ID = ? and STEP_NAME = ?", jobExecutionId, stepName); }
private Map<String, Object> getStepExecution(JobExecution jobExecution, String stepName) { Long jobExecutionId = jobExecution.getId(); return jdbcTemplate.queryForMap( "SELECT * from BATCH_STEP_EXECUTION where JOB_EXECUTION_ID = ? and STEP_NAME = ?", jobExecutionId, stepName); }
@Override @Nullable public JobInstance getJobInstance(JobExecution jobExecution) { try { return getJdbcTemplate().queryForObject( getQuery(GET_JOB_FROM_EXECUTION_ID), new JobInstanceRowMapper(), jobExecution.getId()); } catch (EmptyResultDataAccessException e) { return null; } }
@SuppressWarnings("unused") public void aMethod(JobExecution jobExecution) { executed = true; assertEquals(new Long(25), jobExecution.getId()); } };
@Override public void synchronizeStatus(JobExecution jobExecution) { JobExecution saved = getJobExecution(jobExecution.getId()); if (saved.getVersion().intValue() != jobExecution.getVersion().intValue()) { jobExecution.upgradeStatus(saved.getStatus()); jobExecution.setVersion(saved.getVersion()); } } }
@Transactional @Test public void testVersionIsNotNullForJobExecution() throws Exception { int version = jdbcTemplate.queryForObject("select version from BATCH_JOB_EXECUTION where JOB_EXECUTION_ID=" + jobExecution.getId(), Integer.class); assertEquals(0, version); }
@Override public void addStepExecutions(JobExecution jobExecution) { getJdbcTemplate().query(getQuery(GET_STEP_EXECUTIONS), new StepExecutionRowMapper(jobExecution), jobExecution.getId()); }
@Test public void testGetExecutionId() { when(execution.getId()).thenReturn(5L); assertEquals(5L, context.getExecutionId()); }
@Override public void run() { try { JobExecution jobExecution = new JobExecution(new JobInstance((long) -1, "mapJob"), new JobParameters()); latch.await(); tested.saveJobExecution(jobExecution); ids.add(jobExecution.getId()); } catch(Exception e) { exception.set(e); } } };
@Transactional @Test public void testSaveAddsVersionAndId() { JobExecution jobExecution = new JobExecution(jobInstance, jobParameters); assertNull(jobExecution.getId()); assertNull(jobExecution.getVersion()); jobExecutionDao.saveJobExecution(jobExecution); assertNotNull(jobExecution.getId()); assertNotNull(jobExecution.getVersion()); }
private void assertExecutionsAreEqual(JobExecution lhs, JobExecution rhs) { assertEquals(lhs.getId(), rhs.getId()); assertEquals(lhs.getStartTime(), rhs.getStartTime()); assertEquals(lhs.getStatus(), rhs.getStatus()); assertEquals(lhs.getEndTime(), rhs.getEndTime()); assertEquals(lhs.getCreateTime(), rhs.getCreateTime()); assertEquals(lhs.getLastUpdated(), rhs.getLastUpdated()); assertEquals(lhs.getVersion(), rhs.getVersion()); }