[KC-103] 추론 실행 배치 수정

This commit is contained in:
2026-01-13 15:12:26 +09:00
parent a983223562
commit 65bac54db5
2 changed files with 55 additions and 49 deletions

View File

@@ -233,44 +233,52 @@ public class InferenceResultCoreService {
.getInferenceResultByUuid(request.getUuid()) .getInferenceResultByUuid(request.getUuid())
.orElseThrow(() -> new EntityNotFoundException()); .orElseThrow(() -> new EntityNotFoundException());
if (request.getType().equals("M1")) { if (request.getType() != null) {
if (request.getBatchId() != null) { switch (request.getType()) {
entity.setM1ModelBatchId(request.getBatchId()); case "M1" -> {
} if (request.getBatchId() != null) {
entity.setM1ModelBatchId(request.getBatchId());
}
if (request.getModelStartDttm() != null) { if (request.getModelStartDttm() != null) {
entity.setM1ModelStartDttm(request.getModelStartDttm()); entity.setM1ModelStartDttm(request.getModelStartDttm());
} }
if (request.getModelEndDttm() != null) { if (request.getModelEndDttm() != null) {
entity.setM1ModelEndDttm(request.getModelEndDttm()); entity.setM1ModelEndDttm(request.getModelEndDttm());
} }
}
case "M2" -> {
if (request.getBatchId() != null) {
entity.setM2ModelBatchId(request.getBatchId());
}
} else if (request.getType().equals("M2")) { if (request.getModelStartDttm() != null) {
if (request.getBatchId() != null) { entity.setM2ModelStartDttm(request.getModelStartDttm());
entity.setM2ModelBatchId(request.getBatchId()); }
}
if (request.getModelStartDttm() != null) { if (request.getModelEndDttm() != null) {
entity.setM2ModelStartDttm(request.getModelStartDttm()); entity.setM2ModelEndDttm(request.getModelEndDttm());
} }
}
case "M3" -> {
if (request.getBatchId() != null) {
entity.setM3ModelBatchId(request.getBatchId());
}
if (request.getModelEndDttm() != null) { if (request.getModelStartDttm() != null) {
entity.setM2ModelEndDttm(request.getModelEndDttm()); entity.setM3ModelStartDttm(request.getModelStartDttm());
} }
} else if (request.getType().equals("M3")) { if (request.getModelEndDttm() != null) {
if (request.getBatchId() != null) { entity.setM3ModelEndDttm(request.getModelEndDttm());
entity.setM3ModelBatchId(request.getBatchId()); }
}
} }
}
if (request.getModelStartDttm() != null) { if (request.getRunningModelType() != null) {
entity.setM3ModelStartDttm(request.getModelStartDttm()); entity.setRunningModelType(request.getRunningModelType());
}
if (request.getModelEndDttm() != null) {
entity.setM3ModelEndDttm(request.getModelEndDttm());
}
} }
if (request.getInferStartDttm() != null) { if (request.getInferStartDttm() != null) {
@@ -293,10 +301,6 @@ public class InferenceResultCoreService {
entity.setDetectEndCnt(request.getDetectEndCnt()); entity.setDetectEndCnt(request.getDetectEndCnt());
} }
if (request.getType() != null) {
entity.setRunningModelType(request.getType());
}
if (request.getStatus() != null) { if (request.getStatus() != null) {
entity.setStatus(request.getStatus()); entity.setStatus(request.getStatus());
} }

View File

@@ -48,7 +48,9 @@ public class MapSheetInferenceJobService {
@Value("${inference.url}") @Value("${inference.url}")
private String inferenceUrl; private String inferenceUrl;
/** 추론 진행 배치 1분 */ /**
* 추론 진행 배치 1분
*/
@Scheduled(fixedDelay = 60_000) @Scheduled(fixedDelay = 60_000)
@Transactional @Transactional
public void runBatch() { public void runBatch() {
@@ -59,7 +61,7 @@ public class MapSheetInferenceJobService {
try { try {
InferenceBatchSheet batchSheet = InferenceBatchSheet batchSheet =
inferenceResultCoreService.getInferenceResultByStatus(Status.IN_PROGRESS.getId()); inferenceResultCoreService.getInferenceResultByStatus(Status.IN_PROGRESS.getId());
if (batchSheet == null) { if (batchSheet == null) {
return; return;
@@ -86,7 +88,7 @@ public class MapSheetInferenceJobService {
String url = batchUrl + "/" + batchId; String url = batchUrl + "/" + batchId;
ExternalCallResult<String> result = ExternalCallResult<String> result =
externalHttpClient.call(url, HttpMethod.GET, null, headers, String.class); externalHttpClient.call(url, HttpMethod.GET, null, headers, String.class);
int status = result.statusCode(); int status = result.statusCode();
if (status < 200 || status >= 300) { if (status < 200 || status >= 300) {
@@ -109,13 +111,13 @@ public class MapSheetInferenceJobService {
if (type.equals("M1")) { if (type.equals("M1")) {
// M1 완료되었으면 M2 실행 // M1 완료되었으면 M2 실행
this.startInference( this.startInference(
batchSheet.getId(), batchSheet.getUuid(), "M2", batchSheet.getM2ModelUuid()); batchSheet.getId(), batchSheet.getUuid(), "M2", batchSheet.getM2ModelUuid());
// 종료시간 // 종료시간
this.updateProcessingEndTimeByModel(batchSheet.getUuid(), ZonedDateTime.now(), "M1"); this.updateProcessingEndTimeByModel(batchSheet.getUuid(), ZonedDateTime.now(), "M1");
} else if (type.equals("M2")) { } else if (type.equals("M2")) {
// M2 완료되었으면 M3 실행 // M2 완료되었으면 M3 실행
this.startInference( this.startInference(
batchSheet.getId(), batchSheet.getUuid(), "M3", batchSheet.getM3ModelUuid()); batchSheet.getId(), batchSheet.getUuid(), "M3", batchSheet.getM3ModelUuid());
// 종료시간 // 종료시간
this.updateProcessingEndTimeByModel(batchSheet.getUuid(), ZonedDateTime.now(), "M2"); this.updateProcessingEndTimeByModel(batchSheet.getUuid(), ZonedDateTime.now(), "M2");
} else if (type.equals("M3")) { } else if (type.equals("M3")) {
@@ -134,7 +136,6 @@ public class MapSheetInferenceJobService {
saveInferenceAiDto.setUuid(batchSheet.getUuid()); saveInferenceAiDto.setUuid(batchSheet.getUuid());
saveInferenceAiDto.setStatus(Status.IN_PROGRESS.getId()); saveInferenceAiDto.setStatus(Status.IN_PROGRESS.getId());
saveInferenceAiDto.setDetectEndCnt((long) (completedJobs + failedJobs)); saveInferenceAiDto.setDetectEndCnt((long) (completedJobs + failedJobs));
saveInferenceAiDto.setType(batchSheet.getRunningModelType());
inferenceResultCoreService.update(saveInferenceAiDto); inferenceResultCoreService.update(saveInferenceAiDto);
} }
@@ -147,7 +148,7 @@ public class MapSheetInferenceJobService {
private void startInference(Long id, UUID uuid, String type, UUID modelUuid) { private void startInference(Long id, UUID uuid, String type, UUID modelUuid) {
InferenceProgressDto progressDto = InferenceProgressDto progressDto =
inferenceResultCoreService.getInferenceAiResultById(id, type, modelUuid); inferenceResultCoreService.getInferenceAiResultById(id, type, modelUuid);
String inferenceType = ""; String inferenceType = "";
@@ -163,20 +164,20 @@ public class MapSheetInferenceJobService {
predRequestsAreas.setInput1_year(progressDto.getPred_requests_areas().getInput1_year()); predRequestsAreas.setInput1_year(progressDto.getPred_requests_areas().getInput1_year());
predRequestsAreas.setInput2_year(progressDto.getPred_requests_areas().getInput2_year()); predRequestsAreas.setInput2_year(progressDto.getPred_requests_areas().getInput2_year());
predRequestsAreas.setInput1_scene_path( predRequestsAreas.setInput1_scene_path(
progressDto.getPred_requests_areas().getInput1_scene_path()); progressDto.getPred_requests_areas().getInput1_scene_path());
predRequestsAreas.setInput2_scene_path( predRequestsAreas.setInput2_scene_path(
progressDto.getPred_requests_areas().getInput2_scene_path()); progressDto.getPred_requests_areas().getInput2_scene_path());
InferenceSendDto m = new InferenceSendDto(); InferenceSendDto m = new InferenceSendDto();
m.setPred_requests_areas(predRequestsAreas); m.setPred_requests_areas(predRequestsAreas);
m.setModel_version(progressDto.getModelVersion()); m.setModel_version(progressDto.getModelVersion());
m.setCd_model_path(progressDto.getCdModelPath() + "/" + progressDto.getCdModelFileName()); m.setCd_model_path(progressDto.getCdModelPath() + "/" + progressDto.getCdModelFileName());
m.setCd_model_config( m.setCd_model_config(
progressDto.getCdModelConfigPath() + "/" + progressDto.getCdModelConfigFileName()); progressDto.getCdModelConfigPath() + "/" + progressDto.getCdModelConfigFileName());
m.setCls_model_path( m.setCls_model_path(
progressDto.getCdModelClsPath() + "/" + progressDto.getCdModelClsFileName()); progressDto.getCdModelClsPath() + "/" + progressDto.getCdModelClsFileName());
m.setCls_model_version(progressDto.getClsModelVersion()); m.setCls_model_version(progressDto.getClsModelVersion());
m.setCd_model_type(type); m.setCd_model_type(inferenceType);
m.setPriority(progressDto.getPriority()); m.setPriority(progressDto.getPriority());
// 추론 다음모델 실행 // 추론 다음모델 실행
@@ -188,7 +189,7 @@ public class MapSheetInferenceJobService {
saveInferenceAiDto.setStatus(Status.IN_PROGRESS.getId()); saveInferenceAiDto.setStatus(Status.IN_PROGRESS.getId());
saveInferenceAiDto.setType(type); saveInferenceAiDto.setType(type);
saveInferenceAiDto.setModelStartDttm(ZonedDateTime.now()); saveInferenceAiDto.setModelStartDttm(ZonedDateTime.now());
saveInferenceAiDto.setRunningModelType(inferenceType); saveInferenceAiDto.setRunningModelType(type);
inferenceResultCoreService.update(saveInferenceAiDto); inferenceResultCoreService.update(saveInferenceAiDto);
} }
@@ -216,7 +217,7 @@ public class MapSheetInferenceJobService {
} }
ExternalCallResult<String> result = ExternalCallResult<String> result =
externalHttpClient.call(inferenceUrl, HttpMethod.POST, dto, headers, String.class); externalHttpClient.call(inferenceUrl, HttpMethod.POST, dto, headers, String.class);
int status = result.statusCode(); int status = result.statusCode();
String body = result.body(); String body = result.body();
@@ -229,7 +230,8 @@ public class MapSheetInferenceJobService {
try { try {
List<Map<String, Object>> list = List<Map<String, Object>> list =
om.readValue(body, new TypeReference<List<Map<String, Object>>>() {}); om.readValue(body, new TypeReference<List<Map<String, Object>>>() {
});
Integer batchIdInt = (Integer) list.get(0).get("batch_id"); Integer batchIdInt = (Integer) list.get(0).get("batch_id");
batchId = batchIdInt.longValue(); batchId = batchIdInt.longValue();