Merge pull request '[KC-103] 추론 실행 배치 수정' (#225) from feat/infer_dev_260107 into develop
Reviewed-on: https://kamco.gitea.gs.dabeeo.com/dabeeo/kamco-dabeeo-backoffice/pulls/225
This commit is contained in:
@@ -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());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user