|
23 | 23 | import java.util.ArrayList; |
24 | 24 | import java.util.HashSet; |
25 | 25 | import java.util.List; |
| 26 | +import java.util.Objects; |
26 | 27 | import java.util.Set; |
27 | 28 | import java.util.concurrent.locks.Lock; |
28 | 29 | import java.util.concurrent.locks.ReentrantLock; |
@@ -79,8 +80,8 @@ SELECT COUNT(*) |
79 | 80 | WHERE JOB_EXECUTION_ID = ? |
80 | 81 | """; |
81 | 82 |
|
82 | | - private static final String GET_STATUS = """ |
83 | | - SELECT STATUS |
| 83 | + private static final String GET_VERSION_AND_STATUS = """ |
| 84 | + SELECT VERSION, STATUS |
84 | 85 | FROM %PREFIX%JOB_EXECUTION |
85 | 86 | WHERE JOB_EXECUTION_ID = ? |
86 | 87 | """; |
@@ -346,14 +347,13 @@ public Set<JobExecution> findRunningJobExecutions(String jobName) { |
346 | 347 |
|
347 | 348 | @Override |
348 | 349 | public void synchronizeStatus(JobExecution jobExecution) { |
349 | | - int currentVersion = getJdbcTemplate().queryForObject(getQuery(CURRENT_VERSION_JOB_EXECUTION), Integer.class, |
350 | | - jobExecution.getId()); |
351 | | - |
352 | | - if (currentVersion != jobExecution.getVersion()) { |
353 | | - String status = getJdbcTemplate().queryForObject(getQuery(GET_STATUS), String.class, jobExecution.getId()); |
354 | | - jobExecution.upgradeStatus(BatchStatus.valueOf(status)); |
355 | | - jobExecution.setVersion(currentVersion); |
356 | | - } |
| 350 | + getJdbcTemplate().query(getQuery(GET_VERSION_AND_STATUS), rs -> { |
| 351 | + Integer currentVersion = rs.getInt("VERSION"); |
| 352 | + if (!Objects.equals(currentVersion, jobExecution.getVersion())) { |
| 353 | + jobExecution.upgradeStatus(BatchStatus.valueOf(rs.getString("STATUS"))); |
| 354 | + jobExecution.setVersion(currentVersion); |
| 355 | + } |
| 356 | + }, jobExecution.getId()); |
357 | 357 | } |
358 | 358 |
|
359 | 359 | /** |
|
0 commit comments