refactor(batch): 파티션 스텝 프로세스 공통 모듈화 및 LastExecutionUpdateTasklet 통합 #77
@ -1,6 +1,7 @@
|
||||
package com.snp.batch.jobs.compliance.batch.config;
|
||||
|
||||
import com.snp.batch.common.batch.config.BaseMultiStepJobConfig;
|
||||
import com.snp.batch.common.batch.tasklet.LastExecutionUpdateTasklet;
|
||||
import com.snp.batch.jobs.compliance.batch.dto.CompanyComplianceDto;
|
||||
import com.snp.batch.jobs.compliance.batch.entity.CompanyComplianceEntity;
|
||||
import com.snp.batch.jobs.compliance.batch.processor.CompanyComplianceDataProcessor;
|
||||
@ -30,8 +31,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
@ -211,36 +210,7 @@ public class CompanyComplianceImportRangeJobConfig extends BaseMultiStepJobConfi
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet companyComplianceLastExecutionUpdateTasklet() {
|
||||
return (contribution, chunkContext) -> {
|
||||
String executionMode = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getJobParameters().getString("executionMode", "NORMAL");
|
||||
if ("RECOLLECT".equals(executionMode)) {
|
||||
log.info(">>>>> RECOLLECT 모드 - LAST_EXECUTION 업데이트 스킵");
|
||||
return RepeatStatus.FINISHED;
|
||||
}
|
||||
|
||||
String toDateStr = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getExecutionContext().getString("batchToDate", null);
|
||||
|
||||
LocalDateTime successDate;
|
||||
if (toDateStr != null) {
|
||||
successDate = LocalDateTime.parse(toDateStr).minusHours(lastExecutionBufferHours);
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 시작 (캡처된 toDate - {}시간 버퍼: {})", lastExecutionBufferHours, successDate);
|
||||
} else {
|
||||
successDate = LocalDateTime.now().minusHours(lastExecutionBufferHours);
|
||||
log.warn(">>>>> batchToDate가 없어 현재 시간 - {}시간 버퍼 사용: {}", lastExecutionBufferHours, successDate);
|
||||
}
|
||||
|
||||
jdbcTemplate.update(
|
||||
String.format("UPDATE %s.BATCH_LAST_EXECUTION SET LAST_SUCCESS_DATE = ?, UPDATED_AT = NOW() WHERE API_KEY = ?", targetSchema),
|
||||
Timestamp.valueOf(successDate), getApiKey()
|
||||
);
|
||||
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 완료 (LAST_SUCCESS_DATE = {})", successDate);
|
||||
return RepeatStatus.FINISHED;
|
||||
};
|
||||
return new LastExecutionUpdateTasklet(jdbcTemplate, targetSchema, getApiKey(), lastExecutionBufferHours);
|
||||
}
|
||||
@Bean(name = "CompanyComplianceLastExecutionUpdateStep")
|
||||
public Step companyComplianceLastExecutionUpdateStep() {
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.snp.batch.jobs.compliance.batch.config;
|
||||
|
||||
import com.snp.batch.common.batch.config.BaseMultiStepJobConfig;
|
||||
import com.snp.batch.common.batch.tasklet.LastExecutionUpdateTasklet;
|
||||
import com.snp.batch.jobs.compliance.batch.dto.ComplianceDto;
|
||||
import com.snp.batch.jobs.compliance.batch.entity.ComplianceEntity;
|
||||
import com.snp.batch.jobs.compliance.batch.processor.ComplianceDataProcessor;
|
||||
@ -30,8 +31,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
@ -213,36 +212,7 @@ public class ComplianceImportRangeJobConfig extends BaseMultiStepJobConfig<Compl
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet complianceLastExecutionUpdateTasklet() {
|
||||
return (contribution, chunkContext) -> {
|
||||
String executionMode = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getJobParameters().getString("executionMode", "NORMAL");
|
||||
if ("RECOLLECT".equals(executionMode)) {
|
||||
log.info(">>>>> RECOLLECT 모드 - LAST_EXECUTION 업데이트 스킵");
|
||||
return RepeatStatus.FINISHED;
|
||||
}
|
||||
|
||||
String toDateStr = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getExecutionContext().getString("batchToDate", null);
|
||||
|
||||
LocalDateTime successDate;
|
||||
if (toDateStr != null) {
|
||||
successDate = LocalDateTime.parse(toDateStr).minusHours(lastExecutionBufferHours);
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 시작 (캡처된 toDate - {}시간 버퍼: {})", lastExecutionBufferHours, successDate);
|
||||
} else {
|
||||
successDate = LocalDateTime.now().minusHours(lastExecutionBufferHours);
|
||||
log.warn(">>>>> batchToDate가 없어 현재 시간 - {}시간 버퍼 사용: {}", lastExecutionBufferHours, successDate);
|
||||
}
|
||||
|
||||
jdbcTemplate.update(
|
||||
String.format("UPDATE %s.BATCH_LAST_EXECUTION SET LAST_SUCCESS_DATE = ?, UPDATED_AT = NOW() WHERE API_KEY = ?", targetSchema),
|
||||
Timestamp.valueOf(successDate), getApiKey()
|
||||
);
|
||||
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 완료 (LAST_SUCCESS_DATE = {})", successDate);
|
||||
return RepeatStatus.FINISHED;
|
||||
};
|
||||
return new LastExecutionUpdateTasklet(jdbcTemplate, targetSchema, getApiKey(), lastExecutionBufferHours);
|
||||
}
|
||||
@Bean(name = "ComplianceLastExecutionUpdateStep")
|
||||
public Step complianceLastExecutionUpdateStep() {
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.snp.batch.jobs.event.batch.config;
|
||||
|
||||
import com.snp.batch.common.batch.config.BaseMultiStepJobConfig;
|
||||
import com.snp.batch.common.batch.tasklet.LastExecutionUpdateTasklet;
|
||||
import com.snp.batch.jobs.event.batch.dto.EventDetailDto;
|
||||
import com.snp.batch.jobs.event.batch.entity.EventDetailEntity;
|
||||
import com.snp.batch.jobs.event.batch.processor.EventDataProcessor;
|
||||
@ -21,7 +22,6 @@ import org.springframework.batch.core.step.tasklet.Tasklet;
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.repeat.RepeatStatus;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@ -30,9 +30,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
public class EventImportJobConfig extends BaseMultiStepJobConfig<EventDetailDto, EventDetailEntity> {
|
||||
@ -159,36 +156,7 @@ public class EventImportJobConfig extends BaseMultiStepJobConfig<EventDetailDto,
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet eventLastExecutionUpdateTasklet() {
|
||||
return (contribution, chunkContext) -> {
|
||||
String executionMode = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getJobParameters().getString("executionMode", "NORMAL");
|
||||
if ("RECOLLECT".equals(executionMode)) {
|
||||
log.info(">>>>> RECOLLECT 모드 - LAST_EXECUTION 업데이트 스킵");
|
||||
return RepeatStatus.FINISHED;
|
||||
}
|
||||
|
||||
String toDateStr = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getExecutionContext().getString("batchToDate", null);
|
||||
|
||||
LocalDateTime successDate;
|
||||
if (toDateStr != null) {
|
||||
successDate = LocalDateTime.parse(toDateStr).minusHours(lastExecutionBufferHours);
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 시작 (캡처된 toDate - {}시간 버퍼: {})", lastExecutionBufferHours, successDate);
|
||||
} else {
|
||||
successDate = LocalDateTime.now().minusHours(lastExecutionBufferHours);
|
||||
log.warn(">>>>> batchToDate가 없어 현재 시간 - {}시간 버퍼 사용: {}", lastExecutionBufferHours, successDate);
|
||||
}
|
||||
|
||||
jdbcTemplate.update(
|
||||
String.format("UPDATE %s.BATCH_LAST_EXECUTION SET LAST_SUCCESS_DATE = ?, UPDATED_AT = NOW() WHERE API_KEY = ?", targetSchema),
|
||||
Timestamp.valueOf(successDate), getApiKey()
|
||||
);
|
||||
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 완료 (LAST_SUCCESS_DATE = {})", successDate);
|
||||
return RepeatStatus.FINISHED;
|
||||
};
|
||||
return new LastExecutionUpdateTasklet(jdbcTemplate, targetSchema, getApiKey(), lastExecutionBufferHours);
|
||||
}
|
||||
@Bean(name = "EventLastExecutionUpdateStep")
|
||||
public Step eventLastExecutionUpdateStep() {
|
||||
|
||||
@ -2,6 +2,7 @@ package com.snp.batch.jobs.movement.batch.config;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.snp.batch.common.batch.config.BaseMultiStepJobConfig;
|
||||
import com.snp.batch.common.batch.tasklet.LastExecutionUpdateTasklet;
|
||||
import com.snp.batch.jobs.movement.batch.dto.AnchorageCallsDto;
|
||||
import com.snp.batch.jobs.movement.batch.entity.AnchorageCallsEntity;
|
||||
import com.snp.batch.jobs.movement.batch.processor.AnchorageCallsProcessor;
|
||||
@ -20,7 +21,6 @@ import org.springframework.batch.core.step.tasklet.Tasklet;
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.repeat.RepeatStatus;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@ -29,8 +29,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
@ -149,36 +147,7 @@ public class AnchorageCallsRangeJobConfig extends BaseMultiStepJobConfig<Anchora
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet anchorageCallsLastExecutionUpdateTasklet() {
|
||||
return (contribution, chunkContext) -> {
|
||||
String executionMode = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getJobParameters().getString("executionMode", "NORMAL");
|
||||
if ("RECOLLECT".equals(executionMode)) {
|
||||
log.info(">>>>> RECOLLECT 모드 - LAST_EXECUTION 업데이트 스킵");
|
||||
return RepeatStatus.FINISHED;
|
||||
}
|
||||
|
||||
String toDateStr = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getExecutionContext().getString("batchToDate", null);
|
||||
|
||||
LocalDateTime successDate;
|
||||
if (toDateStr != null) {
|
||||
successDate = LocalDateTime.parse(toDateStr);
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 시작 (캡처된 toDate: {})", successDate);
|
||||
} else {
|
||||
successDate = LocalDateTime.now();
|
||||
log.warn(">>>>> batchToDate가 없어 현재 시간 사용: {}", successDate);
|
||||
}
|
||||
|
||||
jdbcTemplate.update(
|
||||
String.format("UPDATE %s.BATCH_LAST_EXECUTION SET LAST_SUCCESS_DATE = ?, UPDATED_AT = NOW() WHERE API_KEY = ?", targetSchema),
|
||||
Timestamp.valueOf(successDate), getApiKey()
|
||||
);
|
||||
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 완료 (LAST_SUCCESS_DATE = {})", successDate);
|
||||
return RepeatStatus.FINISHED;
|
||||
};
|
||||
return new LastExecutionUpdateTasklet(jdbcTemplate, targetSchema, getApiKey(), 0);
|
||||
}
|
||||
@Bean(name = "AnchorageCallsLastExecutionUpdateStep")
|
||||
public Step anchorageCallsLastExecutionUpdateStep() {
|
||||
|
||||
@ -2,6 +2,7 @@ package com.snp.batch.jobs.movement.batch.config;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.snp.batch.common.batch.config.BaseMultiStepJobConfig;
|
||||
import com.snp.batch.common.batch.tasklet.LastExecutionUpdateTasklet;
|
||||
import com.snp.batch.jobs.movement.batch.dto.BerthCallsDto;
|
||||
import com.snp.batch.jobs.movement.batch.entity.BerthCallsEntity;
|
||||
import com.snp.batch.jobs.movement.batch.processor.BerthCallsProcessor;
|
||||
@ -20,7 +21,6 @@ import org.springframework.batch.core.step.tasklet.Tasklet;
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.repeat.RepeatStatus;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@ -29,8 +29,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
@ -143,36 +141,7 @@ public class BerthCallsRangJobConfig extends BaseMultiStepJobConfig<BerthCallsDt
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet berthCallsLastExecutionUpdateTasklet() {
|
||||
return (contribution, chunkContext) -> {
|
||||
String executionMode = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getJobParameters().getString("executionMode", "NORMAL");
|
||||
if ("RECOLLECT".equals(executionMode)) {
|
||||
log.info(">>>>> RECOLLECT 모드 - LAST_EXECUTION 업데이트 스킵");
|
||||
return RepeatStatus.FINISHED;
|
||||
}
|
||||
|
||||
String toDateStr = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getExecutionContext().getString("batchToDate", null);
|
||||
|
||||
LocalDateTime successDate;
|
||||
if (toDateStr != null) {
|
||||
successDate = LocalDateTime.parse(toDateStr);
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 시작 (캡처된 toDate: {})", successDate);
|
||||
} else {
|
||||
successDate = LocalDateTime.now();
|
||||
log.warn(">>>>> batchToDate가 없어 현재 시간 사용: {}", successDate);
|
||||
}
|
||||
|
||||
jdbcTemplate.update(
|
||||
String.format("UPDATE %s.BATCH_LAST_EXECUTION SET LAST_SUCCESS_DATE = ?, UPDATED_AT = NOW() WHERE API_KEY = ?", targetSchema),
|
||||
Timestamp.valueOf(successDate), getApiKey()
|
||||
);
|
||||
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 완료 (LAST_SUCCESS_DATE = {})", successDate);
|
||||
return RepeatStatus.FINISHED;
|
||||
};
|
||||
return new LastExecutionUpdateTasklet(jdbcTemplate, targetSchema, getApiKey(), 0);
|
||||
}
|
||||
@Bean(name = "BerthCallsLastExecutionUpdateStep")
|
||||
public Step berthCallsLastExecutionUpdateStep() {
|
||||
|
||||
@ -2,6 +2,7 @@ package com.snp.batch.jobs.movement.batch.config;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.snp.batch.common.batch.config.BaseMultiStepJobConfig;
|
||||
import com.snp.batch.common.batch.tasklet.LastExecutionUpdateTasklet;
|
||||
import com.snp.batch.jobs.movement.batch.dto.CurrentlyAtDto;
|
||||
import com.snp.batch.jobs.movement.batch.entity.CurrentlyAtEntity;
|
||||
import com.snp.batch.jobs.movement.batch.processor.CurrentlyAtProcessor;
|
||||
@ -20,7 +21,6 @@ import org.springframework.batch.core.step.tasklet.Tasklet;
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.repeat.RepeatStatus;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@ -29,8 +29,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
@ -141,36 +139,7 @@ public class CurrentlyAtRangeJobConfig extends BaseMultiStepJobConfig<CurrentlyA
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet currentlyAtLastExecutionUpdateTasklet() {
|
||||
return (contribution, chunkContext) -> {
|
||||
String executionMode = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getJobParameters().getString("executionMode", "NORMAL");
|
||||
if ("RECOLLECT".equals(executionMode)) {
|
||||
log.info(">>>>> RECOLLECT 모드 - LAST_EXECUTION 업데이트 스킵");
|
||||
return RepeatStatus.FINISHED;
|
||||
}
|
||||
|
||||
String toDateStr = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getExecutionContext().getString("batchToDate", null);
|
||||
|
||||
LocalDateTime successDate;
|
||||
if (toDateStr != null) {
|
||||
successDate = LocalDateTime.parse(toDateStr);
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 시작 (캡처된 toDate: {})", successDate);
|
||||
} else {
|
||||
successDate = LocalDateTime.now();
|
||||
log.warn(">>>>> batchToDate가 없어 현재 시간 사용: {}", successDate);
|
||||
}
|
||||
|
||||
jdbcTemplate.update(
|
||||
String.format("UPDATE %s.BATCH_LAST_EXECUTION SET LAST_SUCCESS_DATE = ?, UPDATED_AT = NOW() WHERE API_KEY = ?", targetSchema),
|
||||
Timestamp.valueOf(successDate), getApiKey()
|
||||
);
|
||||
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 완료 (LAST_SUCCESS_DATE = {})", successDate);
|
||||
return RepeatStatus.FINISHED;
|
||||
};
|
||||
return new LastExecutionUpdateTasklet(jdbcTemplate, targetSchema, getApiKey(), 0);
|
||||
}
|
||||
@Bean(name = "CurrentlyAtLastExecutionUpdateStep")
|
||||
public Step currentlyAtLastExecutionUpdateStep() {
|
||||
|
||||
@ -2,6 +2,7 @@ package com.snp.batch.jobs.movement.batch.config;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.snp.batch.common.batch.config.BaseMultiStepJobConfig;
|
||||
import com.snp.batch.common.batch.tasklet.LastExecutionUpdateTasklet;
|
||||
import com.snp.batch.jobs.movement.batch.dto.DestinationDto;
|
||||
import com.snp.batch.jobs.movement.batch.entity.DestinationEntity;
|
||||
import com.snp.batch.jobs.movement.batch.processor.DestinationProcessor;
|
||||
@ -20,7 +21,6 @@ import org.springframework.batch.core.step.tasklet.Tasklet;
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.repeat.RepeatStatus;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@ -29,8 +29,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
@ -144,36 +142,7 @@ public class DestinationsRangeJobConfig extends BaseMultiStepJobConfig<Destinati
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet destinationsLastExecutionUpdateTasklet() {
|
||||
return (contribution, chunkContext) -> {
|
||||
String executionMode = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getJobParameters().getString("executionMode", "NORMAL");
|
||||
if ("RECOLLECT".equals(executionMode)) {
|
||||
log.info(">>>>> RECOLLECT 모드 - LAST_EXECUTION 업데이트 스킵");
|
||||
return RepeatStatus.FINISHED;
|
||||
}
|
||||
|
||||
String toDateStr = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getExecutionContext().getString("batchToDate", null);
|
||||
|
||||
LocalDateTime successDate;
|
||||
if (toDateStr != null) {
|
||||
successDate = LocalDateTime.parse(toDateStr);
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 시작 (캡처된 toDate: {})", successDate);
|
||||
} else {
|
||||
successDate = LocalDateTime.now();
|
||||
log.warn(">>>>> batchToDate가 없어 현재 시간 사용: {}", successDate);
|
||||
}
|
||||
|
||||
jdbcTemplate.update(
|
||||
String.format("UPDATE %s.BATCH_LAST_EXECUTION SET LAST_SUCCESS_DATE = ?, UPDATED_AT = NOW() WHERE API_KEY = ?", targetSchema),
|
||||
Timestamp.valueOf(successDate), getApiKey()
|
||||
);
|
||||
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 완료 (LAST_SUCCESS_DATE = {})", successDate);
|
||||
return RepeatStatus.FINISHED;
|
||||
};
|
||||
return new LastExecutionUpdateTasklet(jdbcTemplate, targetSchema, getApiKey(), 0);
|
||||
}
|
||||
@Bean(name = "DestinationsLastExecutionUpdateStep")
|
||||
public Step destinationsLastExecutionUpdateStep() {
|
||||
|
||||
@ -2,6 +2,7 @@ package com.snp.batch.jobs.movement.batch.config;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.snp.batch.common.batch.config.BaseMultiStepJobConfig;
|
||||
import com.snp.batch.common.batch.tasklet.LastExecutionUpdateTasklet;
|
||||
import com.snp.batch.jobs.movement.batch.dto.PortCallsDto;
|
||||
import com.snp.batch.jobs.movement.batch.entity.PortCallsEntity;
|
||||
import com.snp.batch.jobs.movement.batch.processor.PortCallsProcessor;
|
||||
@ -20,7 +21,6 @@ import org.springframework.batch.core.step.tasklet.Tasklet;
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.repeat.RepeatStatus;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@ -29,8 +29,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
@ -145,36 +143,7 @@ public class ShipPortCallsRangeJobConfig extends BaseMultiStepJobConfig<PortCall
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet portCallsLastExecutionUpdateTasklet() {
|
||||
return (contribution, chunkContext) -> {
|
||||
String executionMode = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getJobParameters().getString("executionMode", "NORMAL");
|
||||
if ("RECOLLECT".equals(executionMode)) {
|
||||
log.info(">>>>> RECOLLECT 모드 - LAST_EXECUTION 업데이트 스킵");
|
||||
return RepeatStatus.FINISHED;
|
||||
}
|
||||
|
||||
String toDateStr = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getExecutionContext().getString("batchToDate", null);
|
||||
|
||||
LocalDateTime successDate;
|
||||
if (toDateStr != null) {
|
||||
successDate = LocalDateTime.parse(toDateStr);
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 시작 (캡처된 toDate: {})", successDate);
|
||||
} else {
|
||||
successDate = LocalDateTime.now();
|
||||
log.warn(">>>>> batchToDate가 없어 현재 시간 사용: {}", successDate);
|
||||
}
|
||||
|
||||
jdbcTemplate.update(
|
||||
String.format("UPDATE %s.BATCH_LAST_EXECUTION SET LAST_SUCCESS_DATE = ?, UPDATED_AT = NOW() WHERE API_KEY = ?", targetSchema),
|
||||
Timestamp.valueOf(successDate), getApiKey()
|
||||
);
|
||||
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 완료 (LAST_SUCCESS_DATE = {})", successDate);
|
||||
return RepeatStatus.FINISHED;
|
||||
};
|
||||
return new LastExecutionUpdateTasklet(jdbcTemplate, targetSchema, getApiKey(), 0);
|
||||
}
|
||||
@Bean(name = "PortCallsLastExecutionUpdateStep")
|
||||
public Step portCallsLastExecutionUpdateStep() {
|
||||
|
||||
@ -2,6 +2,7 @@ package com.snp.batch.jobs.movement.batch.config;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.snp.batch.common.batch.config.BaseMultiStepJobConfig;
|
||||
import com.snp.batch.common.batch.tasklet.LastExecutionUpdateTasklet;
|
||||
import com.snp.batch.jobs.movement.batch.dto.StsOperationDto;
|
||||
import com.snp.batch.jobs.movement.batch.entity.StsOperationEntity;
|
||||
import com.snp.batch.jobs.movement.batch.processor.StsOperationProcessor;
|
||||
@ -20,7 +21,6 @@ import org.springframework.batch.core.step.tasklet.Tasklet;
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.repeat.RepeatStatus;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@ -29,8 +29,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
@ -143,36 +141,7 @@ public class StsOperationRangeJobConfig extends BaseMultiStepJobConfig<StsOperat
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet stsOperationLastExecutionUpdateTasklet() {
|
||||
return (contribution, chunkContext) -> {
|
||||
String executionMode = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getJobParameters().getString("executionMode", "NORMAL");
|
||||
if ("RECOLLECT".equals(executionMode)) {
|
||||
log.info(">>>>> RECOLLECT 모드 - LAST_EXECUTION 업데이트 스킵");
|
||||
return RepeatStatus.FINISHED;
|
||||
}
|
||||
|
||||
String toDateStr = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getExecutionContext().getString("batchToDate", null);
|
||||
|
||||
LocalDateTime successDate;
|
||||
if (toDateStr != null) {
|
||||
successDate = LocalDateTime.parse(toDateStr);
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 시작 (캡처된 toDate: {})", successDate);
|
||||
} else {
|
||||
successDate = LocalDateTime.now();
|
||||
log.warn(">>>>> batchToDate가 없어 현재 시간 사용: {}", successDate);
|
||||
}
|
||||
|
||||
jdbcTemplate.update(
|
||||
String.format("UPDATE %s.BATCH_LAST_EXECUTION SET LAST_SUCCESS_DATE = ?, UPDATED_AT = NOW() WHERE API_KEY = ?", targetSchema),
|
||||
Timestamp.valueOf(successDate), getApiKey()
|
||||
);
|
||||
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 완료 (LAST_SUCCESS_DATE = {})", successDate);
|
||||
return RepeatStatus.FINISHED;
|
||||
};
|
||||
return new LastExecutionUpdateTasklet(jdbcTemplate, targetSchema, getApiKey(), 0);
|
||||
}
|
||||
@Bean(name = "StsOperationLastExecutionUpdateStep")
|
||||
public Step stsOperationLastExecutionUpdateStep() {
|
||||
|
||||
@ -2,6 +2,7 @@ package com.snp.batch.jobs.movement.batch.config;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.snp.batch.common.batch.config.BaseMultiStepJobConfig;
|
||||
import com.snp.batch.common.batch.tasklet.LastExecutionUpdateTasklet;
|
||||
import com.snp.batch.jobs.movement.batch.dto.TerminalCallsDto;
|
||||
import com.snp.batch.jobs.movement.batch.entity.TerminalCallsEntity;
|
||||
import com.snp.batch.jobs.movement.batch.processor.TerminalCallsProcessor;
|
||||
@ -20,7 +21,6 @@ import org.springframework.batch.core.step.tasklet.Tasklet;
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.repeat.RepeatStatus;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@ -29,8 +29,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
@ -143,36 +141,7 @@ public class TerminalCallsRangeJobConfig extends BaseMultiStepJobConfig<Terminal
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet terminalCallsLastExecutionUpdateTasklet() {
|
||||
return (contribution, chunkContext) -> {
|
||||
String executionMode = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getJobParameters().getString("executionMode", "NORMAL");
|
||||
if ("RECOLLECT".equals(executionMode)) {
|
||||
log.info(">>>>> RECOLLECT 모드 - LAST_EXECUTION 업데이트 스킵");
|
||||
return RepeatStatus.FINISHED;
|
||||
}
|
||||
|
||||
String toDateStr = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getExecutionContext().getString("batchToDate", null);
|
||||
|
||||
LocalDateTime successDate;
|
||||
if (toDateStr != null) {
|
||||
successDate = LocalDateTime.parse(toDateStr);
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 시작 (캡처된 toDate: {})", successDate);
|
||||
} else {
|
||||
successDate = LocalDateTime.now();
|
||||
log.warn(">>>>> batchToDate가 없어 현재 시간 사용: {}", successDate);
|
||||
}
|
||||
|
||||
jdbcTemplate.update(
|
||||
String.format("UPDATE %s.BATCH_LAST_EXECUTION SET LAST_SUCCESS_DATE = ?, UPDATED_AT = NOW() WHERE API_KEY = ?", targetSchema),
|
||||
Timestamp.valueOf(successDate), getApiKey()
|
||||
);
|
||||
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 완료 (LAST_SUCCESS_DATE = {})", successDate);
|
||||
return RepeatStatus.FINISHED;
|
||||
};
|
||||
return new LastExecutionUpdateTasklet(jdbcTemplate, targetSchema, getApiKey(), 0);
|
||||
}
|
||||
@Bean(name = "TerminalCallsLastExecutionUpdateStep")
|
||||
public Step terminalCallsLastExecutionUpdateStep() {
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.snp.batch.jobs.movement.batch.config;
|
||||
|
||||
import com.snp.batch.common.batch.config.BaseMultiStepJobConfig;
|
||||
import com.snp.batch.common.batch.tasklet.LastExecutionUpdateTasklet;
|
||||
import com.snp.batch.jobs.movement.batch.dto.TransitsDto;
|
||||
import com.snp.batch.jobs.movement.batch.entity.TransitsEntity;
|
||||
import com.snp.batch.jobs.movement.batch.processor.TransitsProcessor;
|
||||
@ -19,7 +20,6 @@ import org.springframework.batch.core.step.tasklet.Tasklet;
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.repeat.RepeatStatus;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@ -28,8 +28,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
@ -141,36 +139,7 @@ public class TransitsRangeJobConfig extends BaseMultiStepJobConfig<TransitsDto,
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet transitsLastExecutionUpdateTasklet() {
|
||||
return (contribution, chunkContext) -> {
|
||||
String executionMode = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getJobParameters().getString("executionMode", "NORMAL");
|
||||
if ("RECOLLECT".equals(executionMode)) {
|
||||
log.info(">>>>> RECOLLECT 모드 - LAST_EXECUTION 업데이트 스킵");
|
||||
return RepeatStatus.FINISHED;
|
||||
}
|
||||
|
||||
String toDateStr = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getExecutionContext().getString("batchToDate", null);
|
||||
|
||||
LocalDateTime successDate;
|
||||
if (toDateStr != null) {
|
||||
successDate = LocalDateTime.parse(toDateStr);
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 시작 (캡처된 toDate: {})", successDate);
|
||||
} else {
|
||||
successDate = LocalDateTime.now();
|
||||
log.warn(">>>>> batchToDate가 없어 현재 시간 사용: {}", successDate);
|
||||
}
|
||||
|
||||
jdbcTemplate.update(
|
||||
String.format("UPDATE %s.BATCH_LAST_EXECUTION SET LAST_SUCCESS_DATE = ?, UPDATED_AT = NOW() WHERE API_KEY = ?", targetSchema),
|
||||
Timestamp.valueOf(successDate), getApiKey()
|
||||
);
|
||||
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 완료 (LAST_SUCCESS_DATE = {})", successDate);
|
||||
return RepeatStatus.FINISHED;
|
||||
};
|
||||
return new LastExecutionUpdateTasklet(jdbcTemplate, targetSchema, getApiKey(), 0);
|
||||
}
|
||||
@Bean(name = "TransitsLastExecutionUpdateStep")
|
||||
public Step transitsLastExecutionUpdateStep() {
|
||||
|
||||
@ -2,6 +2,7 @@ package com.snp.batch.jobs.pscInspection.batch.config;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.snp.batch.common.batch.config.BaseMultiStepJobConfig;
|
||||
import com.snp.batch.common.batch.tasklet.LastExecutionUpdateTasklet;
|
||||
import com.snp.batch.jobs.facility.batch.processor.PortDataProcessor;
|
||||
import com.snp.batch.jobs.pscInspection.batch.dto.PscInspectionDto;
|
||||
import com.snp.batch.jobs.pscInspection.batch.entity.PscInspectionEntity;
|
||||
@ -23,7 +24,6 @@ import org.springframework.batch.core.step.tasklet.Tasklet;
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.repeat.RepeatStatus;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@ -32,9 +32,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
public class PscInspectionJobConfig extends BaseMultiStepJobConfig<PscInspectionDto, PscInspectionEntity> {
|
||||
@ -165,36 +162,7 @@ public class PscInspectionJobConfig extends BaseMultiStepJobConfig<PscInspection
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet pscLastExecutionUpdateTasklet() {
|
||||
return (contribution, chunkContext) -> {
|
||||
String executionMode = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getJobParameters().getString("executionMode", "NORMAL");
|
||||
if ("RECOLLECT".equals(executionMode)) {
|
||||
log.info(">>>>> RECOLLECT 모드 - LAST_EXECUTION 업데이트 스킵");
|
||||
return RepeatStatus.FINISHED;
|
||||
}
|
||||
|
||||
String toDateStr = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getExecutionContext().getString("batchToDate", null);
|
||||
|
||||
LocalDateTime successDate;
|
||||
if (toDateStr != null) {
|
||||
successDate = LocalDateTime.parse(toDateStr).minusHours(lastExecutionBufferHours);
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 시작 (캡처된 toDate - {}시간 버퍼: {})", lastExecutionBufferHours, successDate);
|
||||
} else {
|
||||
successDate = LocalDateTime.now().minusHours(lastExecutionBufferHours);
|
||||
log.warn(">>>>> batchToDate가 없어 현재 시간 - {}시간 버퍼 사용: {}", lastExecutionBufferHours, successDate);
|
||||
}
|
||||
|
||||
jdbcTemplate.update(
|
||||
String.format("UPDATE %s.BATCH_LAST_EXECUTION SET LAST_SUCCESS_DATE = ?, UPDATED_AT = NOW() WHERE API_KEY = ?", targetSchema),
|
||||
Timestamp.valueOf(successDate), getApiKey()
|
||||
);
|
||||
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 완료 (LAST_SUCCESS_DATE = {})", successDate);
|
||||
return RepeatStatus.FINISHED;
|
||||
};
|
||||
return new LastExecutionUpdateTasklet(jdbcTemplate, targetSchema, getApiKey(), lastExecutionBufferHours);
|
||||
}
|
||||
@Bean(name = "PSCLastExecutionUpdateStep")
|
||||
public Step pscLastExecutionUpdateStep() {
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.snp.batch.jobs.risk.batch.config;
|
||||
|
||||
import com.snp.batch.common.batch.config.BaseMultiStepJobConfig;
|
||||
import com.snp.batch.common.batch.tasklet.LastExecutionUpdateTasklet;
|
||||
import com.snp.batch.jobs.risk.batch.dto.RiskDto;
|
||||
import com.snp.batch.jobs.risk.batch.entity.RiskEntity;
|
||||
import com.snp.batch.jobs.risk.batch.processor.RiskDataProcessor;
|
||||
@ -21,7 +22,6 @@ import org.springframework.batch.core.step.tasklet.Tasklet;
|
||||
import org.springframework.batch.item.ItemProcessor;
|
||||
import org.springframework.batch.item.ItemReader;
|
||||
import org.springframework.batch.item.ItemWriter;
|
||||
import org.springframework.batch.repeat.RepeatStatus;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@ -30,9 +30,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
public class RiskImportRangeJobConfig extends BaseMultiStepJobConfig<RiskDto, RiskEntity> {
|
||||
@ -157,36 +154,7 @@ public class RiskImportRangeJobConfig extends BaseMultiStepJobConfig<RiskDto, Ri
|
||||
*/
|
||||
@Bean
|
||||
public Tasklet riskLastExecutionUpdateTasklet() {
|
||||
return (contribution, chunkContext) -> {
|
||||
String executionMode = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getJobParameters().getString("executionMode", "NORMAL");
|
||||
if ("RECOLLECT".equals(executionMode)) {
|
||||
log.info(">>>>> RECOLLECT 모드 - LAST_EXECUTION 업데이트 스킵");
|
||||
return RepeatStatus.FINISHED;
|
||||
}
|
||||
|
||||
String toDateStr = chunkContext.getStepContext()
|
||||
.getStepExecution().getJobExecution()
|
||||
.getExecutionContext().getString("batchToDate", null);
|
||||
|
||||
LocalDateTime successDate;
|
||||
if (toDateStr != null) {
|
||||
successDate = LocalDateTime.parse(toDateStr).minusHours(lastExecutionBufferHours);
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 시작 (캡처된 toDate - {}시간 버퍼: {})", lastExecutionBufferHours, successDate);
|
||||
} else {
|
||||
successDate = LocalDateTime.now().minusHours(lastExecutionBufferHours);
|
||||
log.warn(">>>>> batchToDate가 없어 현재 시간 - {}시간 버퍼 사용: {}", lastExecutionBufferHours, successDate);
|
||||
}
|
||||
|
||||
jdbcTemplate.update(
|
||||
String.format("UPDATE %s.BATCH_LAST_EXECUTION SET LAST_SUCCESS_DATE = ?, UPDATED_AT = NOW() WHERE API_KEY = ?", targetSchema),
|
||||
Timestamp.valueOf(successDate), getApiKey()
|
||||
);
|
||||
|
||||
log.info(">>>>> BATCH_LAST_EXECUTION 업데이트 완료 (LAST_SUCCESS_DATE = {})", successDate);
|
||||
return RepeatStatus.FINISHED;
|
||||
};
|
||||
return new LastExecutionUpdateTasklet(jdbcTemplate, targetSchema, getApiKey(), lastExecutionBufferHours);
|
||||
}
|
||||
@Bean(name = "RiskLastExecutionUpdateStep")
|
||||
public Step riskLastExecutionUpdateStep() {
|
||||
|
||||
불러오는 중...
Reference in New Issue
Block a user