Merge pull request 'refactor(risk): RiskDetailImportJob IMO 조회 대상을 tb_ship_default_info로 변경' (#84) from feature/ISSUE-81-risk-detail-imo-source-change into develop

This commit is contained in:
HYOJIN 2026-03-24 13:24:54 +09:00
커밋 54e6130743
3개의 변경된 파일11개의 추가작업 그리고 13개의 파일을 삭제

파일 보기

@ -61,6 +61,7 @@
- 실패 건 수동 재수집 시 414 Request-URI Too Long 오류 수정 (#71) - 실패 건 수동 재수집 시 414 Request-URI Too Long 오류 수정 (#71)
### 변경 ### 변경
- RiskDetailImportJob IMO 조회 대상을 tb_ship_default_info로 변경 (#81)
- 파티션 스텝 프로세스 공통 모듈화 (StringListPartitioner, BasePartitionedJobConfig, LastExecutionUpdateTasklet) (#73) - 파티션 스텝 프로세스 공통 모듈화 (StringListPartitioner, BasePartitionedJobConfig, LastExecutionUpdateTasklet) (#73)
- 13개 Job Config의 인라인 LastExecutionUpdateTasklet을 공통 모듈로 교체 (#74) - 13개 Job Config의 인라인 LastExecutionUpdateTasklet을 공통 모듈로 교체 (#74)
- 재수집 실패건 추적 기준 sourceStepExecutionId → sourceJobExecutionId로 변경 (#64) - 재수집 실패건 추적 기준 sourceStepExecutionId → sourceJobExecutionId로 변경 (#64)

파일 보기

@ -12,18 +12,18 @@ import java.util.List;
/** /**
* Risk 상세 데이터 수집을 위한 IMO 목록 조회 Tasklet. * Risk 상세 데이터 수집을 위한 IMO 목록 조회 Tasklet.
* std_snp_svc.tb_ship_risk_info 테이블에서 전체 imo_no를 오름차순으로 조회하여 * std_snp_data.tb_ship_default_info 테이블에서 전체 imo_no를 오름차순으로 조회하여
* JobExecutionContext에 저장. * JobExecutionContext에 저장.
*/ */
@Slf4j @Slf4j
public class RiskDetailImoFetchTasklet implements Tasklet { public class RiskDetailImoFetchTasklet implements Tasklet {
private final JdbcTemplate jdbcTemplate; private final JdbcTemplate jdbcTemplate;
private final String serviceSchema; private final String targetSchema;
public RiskDetailImoFetchTasklet(JdbcTemplate jdbcTemplate, String serviceSchema) { public RiskDetailImoFetchTasklet(JdbcTemplate jdbcTemplate, String targetSchema) {
this.jdbcTemplate = jdbcTemplate; this.jdbcTemplate = jdbcTemplate;
this.serviceSchema = serviceSchema; this.targetSchema = targetSchema;
} }
@Override @Override
@ -32,8 +32,8 @@ public class RiskDetailImoFetchTasklet implements Tasklet {
.getStepExecution().getJobExecution(); .getStepExecution().getJobExecution();
String sql = String.format( String sql = String.format(
"SELECT DISTINCT imo_no FROM %s.tb_ship_risk_info WHERE imo_no IS NOT NULL ORDER BY imo_no ASC", "SELECT DISTINCT imo_no FROM %s.tb_ship_default_info WHERE imo_no IS NOT NULL ORDER BY imo_no ASC",
serviceSchema); targetSchema);
List<String> imoNumbers = jdbcTemplate.queryForList(sql, String.class); List<String> imoNumbers = jdbcTemplate.queryForList(sql, String.class);
@ -42,8 +42,8 @@ public class RiskDetailImoFetchTasklet implements Tasklet {
jobExecution.getExecutionContext().putString("allImoNumbers", String.join(",", imoNumbers)); jobExecution.getExecutionContext().putString("allImoNumbers", String.join(",", imoNumbers));
} }
log.info("[RiskDetailImoFetchTasklet] IMO {} 건 조회 완료 (from {}.tb_ship_risk_info)", log.info("[RiskDetailImoFetchTasklet] IMO {} 건 조회 완료 (from {}.tb_ship_default_info)",
imoNumbers.size(), serviceSchema); imoNumbers.size(), targetSchema);
return RepeatStatus.FINISHED; return RepeatStatus.FINISHED;
} }

파일 보기

@ -47,9 +47,6 @@ public class RiskDetailImportJobConfig extends BasePartitionedJobConfig<RiskDto,
@Value("${app.batch.target-schema.name}") @Value("${app.batch.target-schema.name}")
private String targetSchema; private String targetSchema;
@Value("${app.batch.service-schema.name}")
private String serviceSchema;
@Value("${app.batch.risk-detail.partition-count:4}") @Value("${app.batch.risk-detail.partition-count:4}")
private int partitionCount; private int partitionCount;
@ -94,7 +91,7 @@ public class RiskDetailImportJobConfig extends BasePartitionedJobConfig<RiskDto,
@Override @Override
protected int getChunkSize() { protected int getChunkSize() {
return 100; return 5000;
} }
// ======================================== // ========================================
@ -119,7 +116,7 @@ public class RiskDetailImportJobConfig extends BasePartitionedJobConfig<RiskDto,
@Bean @Bean
public Tasklet riskDetailImoFetchTasklet() { public Tasklet riskDetailImoFetchTasklet() {
return new RiskDetailImoFetchTasklet(jdbcTemplate, serviceSchema); return new RiskDetailImoFetchTasklet(jdbcTemplate, targetSchema);
} }
@Bean(name = "RiskDetailImoFetchStep") @Bean(name = "RiskDetailImoFetchStep")