From 384a321bf37fb27eeaaf788bdffc44372212b3c6 Mon Sep 17 00:00:00 2001 From: "gayoun.park" Date: Thu, 12 Feb 2026 16:50:40 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AA=A8=EB=8D=B8=ED=95=99=EC=8A=B5=201?= =?UTF-8?q?=EB=8B=A8=EA=B3=84=20=EC=8B=A4=ED=96=89=EC=A4=91=EC=9D=B8=20?= =?UTF-8?q?=EA=B2=83=EC=9D=B4=20=EC=9E=88=EB=8A=94=EC=A7=80=20count=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/ModelTrainMngApiController.java | 18 ++++++++++++++++++ .../model/service/ModelTrainMngService.java | 4 ++++ .../core/ModelTrainMngCoreService.java | 4 ++++ .../model/ModelMngRepositoryCustom.java | 2 ++ .../model/ModelMngRepositoryImpl.java | 10 ++++++++++ .../service/ModelTrainMetricsJobService.java | 6 +++++- 6 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/kamco/cd/training/model/ModelTrainMngApiController.java b/src/main/java/com/kamco/cd/training/model/ModelTrainMngApiController.java index 6251ae0..016c778 100644 --- a/src/main/java/com/kamco/cd/training/model/ModelTrainMngApiController.java +++ b/src/main/java/com/kamco/cd/training/model/ModelTrainMngApiController.java @@ -149,4 +149,22 @@ public class ModelTrainMngApiController { req.setDataType(selectType); return ApiResponseDto.ok(modelTrainMngService.getDatasetSelectList(req)); } + + @Operation(summary = "모델학습 1단계 실행중인 것이 있는지 count", description = "모델학습 1단계 실행중인 것이 있는지 count") + @ApiResponses( + value = { + @ApiResponse( + responseCode = "200", + description = "검색 성공", + content = + @Content( + mediaType = "application/json", + schema = @Schema(implementation = Long.class))), + @ApiResponse(responseCode = "400", description = "잘못된 검색 조건", content = @Content), + @ApiResponse(responseCode = "500", description = "서버 오류", content = @Content) + }) + @GetMapping("/ing-training-cnt") + public ApiResponseDto findModelStep1InProgressCnt() { + return ApiResponseDto.ok(modelTrainMngService.findModelStep1InProgressCnt()); + } } diff --git a/src/main/java/com/kamco/cd/training/model/service/ModelTrainMngService.java b/src/main/java/com/kamco/cd/training/model/service/ModelTrainMngService.java index e7a6dc1..4778c35 100644 --- a/src/main/java/com/kamco/cd/training/model/service/ModelTrainMngService.java +++ b/src/main/java/com/kamco/cd/training/model/service/ModelTrainMngService.java @@ -136,4 +136,8 @@ public class ModelTrainMngService { return modelTrainMngCoreService.getDatasetSelectG2G3List(req); } } + + public Long findModelStep1InProgressCnt() { + return modelTrainMngCoreService.findModelStep1InProgressCnt(); + } } diff --git a/src/main/java/com/kamco/cd/training/postgres/core/ModelTrainMngCoreService.java b/src/main/java/com/kamco/cd/training/postgres/core/ModelTrainMngCoreService.java index f28c1ef..1143d26 100644 --- a/src/main/java/com/kamco/cd/training/postgres/core/ModelTrainMngCoreService.java +++ b/src/main/java/com/kamco/cd/training/postgres/core/ModelTrainMngCoreService.java @@ -502,4 +502,8 @@ public class ModelTrainMngCoreService { public List findDatasetUid(List datasetIds) { return datasetRepository.findDatasetUid(datasetIds); } + + public Long findModelStep1InProgressCnt() { + return modelMngRepository.findModelStep1InProgressCnt(); + } } diff --git a/src/main/java/com/kamco/cd/training/postgres/repository/model/ModelMngRepositoryCustom.java b/src/main/java/com/kamco/cd/training/postgres/repository/model/ModelMngRepositoryCustom.java index 2dc94e0..ab83229 100644 --- a/src/main/java/com/kamco/cd/training/postgres/repository/model/ModelMngRepositoryCustom.java +++ b/src/main/java/com/kamco/cd/training/postgres/repository/model/ModelMngRepositoryCustom.java @@ -22,4 +22,6 @@ public interface ModelMngRepositoryCustom { Optional findFirstByStatusCdAndDelYn(String statusCd, Boolean delYn); TrainRunRequest findTrainRunRequest(Long modelId); + + Long findModelStep1InProgressCnt(); } diff --git a/src/main/java/com/kamco/cd/training/postgres/repository/model/ModelMngRepositoryImpl.java b/src/main/java/com/kamco/cd/training/postgres/repository/model/ModelMngRepositoryImpl.java index 642b6cc..933e428 100644 --- a/src/main/java/com/kamco/cd/training/postgres/repository/model/ModelMngRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/training/postgres/repository/model/ModelMngRepositoryImpl.java @@ -4,6 +4,7 @@ import static com.kamco.cd.training.postgres.entity.QModelConfigEntity.modelConf import static com.kamco.cd.training.postgres.entity.QModelHyperParamEntity.modelHyperParamEntity; import static com.kamco.cd.training.postgres.entity.QModelMasterEntity.modelMasterEntity; +import com.kamco.cd.training.common.enums.TrainStatusType; import com.kamco.cd.training.model.dto.ModelTrainMngDto; import com.kamco.cd.training.postgres.entity.ModelMasterEntity; import com.kamco.cd.training.train.dto.TrainRunRequest; @@ -147,4 +148,13 @@ public class ModelMngRepositoryImpl implements ModelMngRepositoryCustom { .where(modelMasterEntity.id.eq(modelId)) .fetchOne(); } + + @Override + public Long findModelStep1InProgressCnt() { + return queryFactory + .select(modelMasterEntity.id.count()) + .from(modelMasterEntity) + .where(modelMasterEntity.step1State.eq(TrainStatusType.IN_PROGRESS.getId())) + .fetchOne(); + } } diff --git a/src/main/java/com/kamco/cd/training/train/service/ModelTrainMetricsJobService.java b/src/main/java/com/kamco/cd/training/train/service/ModelTrainMetricsJobService.java index 2132af7..339e33b 100644 --- a/src/main/java/com/kamco/cd/training/train/service/ModelTrainMetricsJobService.java +++ b/src/main/java/com/kamco/cd/training/train/service/ModelTrainMetricsJobService.java @@ -27,6 +27,10 @@ public class ModelTrainMetricsJobService { @Value("${spring.profiles.active}") private String profile; + // 학습 결과가 저장될 호스트 디렉토리 + @Value("${train.docker.responseDir}") + private String responseDir; + /** * 실행중인 profile * @@ -51,7 +55,7 @@ public class ModelTrainMetricsJobService { for (ResponsePathDto modelInfo : modelIds) { - String trainPath = modelInfo.getResponsePath() + "/metrics/train.csv"; + String trainPath = responseDir + "{uuid}/metrics/train.csv"; // TODO try (BufferedReader reader = Files.newBufferedReader(Paths.get(trainPath), StandardCharsets.UTF_8); ) {