hello
This commit is contained in:
@@ -13,35 +13,33 @@ import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Log4j2
|
||||
//0312
|
||||
// 0312
|
||||
@RequiredArgsConstructor
|
||||
@Component
|
||||
|
||||
public class ExternalJarRunner {
|
||||
@Value("${spring.profiles.active}")
|
||||
private String profile;
|
||||
//0312
|
||||
|
||||
// 0312
|
||||
private final InferenceProperties inferenceProperties;
|
||||
|
||||
private static final long TIMEOUT_MINUTES = TimeUnit.DAYS.toMinutes(3);
|
||||
|
||||
|
||||
|
||||
// java -jar build/libs/shp-exporter.jar --batch --geoserver.enabled=true --converter.inference-id=qq99999 --converter.batch-ids[0]=111
|
||||
//0312 shp 파일 배치를 통해 생성
|
||||
public void run(String inferenceLearningId, List<Long> batchIds){
|
||||
//JAR 경로 (shape파일 생성용)
|
||||
// java -jar build/libs/shp-exporter.jar --batch --geoserver.enabled=true
|
||||
// --converter.inference-id=qq99999 --converter.batch-ids[0]=111
|
||||
// 0312 shp 파일 배치를 통해 생성
|
||||
public void run(String inferenceLearningId, List<Long> batchIds) {
|
||||
// JAR 경로 (shape파일 생성용)
|
||||
String jarPathV2 = inferenceProperties.getJarPathV2();
|
||||
List<String> args = new ArrayList<>();
|
||||
args.add(" --spring.profiles.active="+profile);
|
||||
args.add(" --spring.profiles.active=" + profile);
|
||||
args.add(" --batch");
|
||||
args.add(" --geoserver.enabled=true");
|
||||
args.add(" --converter.inference-id="+inferenceLearningId);
|
||||
batchIds.forEach(batchId -> args.add(" --converter.batch-ids["+args.size()+"]="+batchId));
|
||||
args.add(" --converter.inference-id=" + inferenceLearningId);
|
||||
batchIds.forEach(batchId -> args.add(" --converter.batch-ids[" + args.size() + "]=" + batchId));
|
||||
execJar(jarPathV2, args);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* shp 파일 생성
|
||||
*
|
||||
@@ -98,7 +96,7 @@ public class ExternalJarRunner {
|
||||
cmd.add("-jar");
|
||||
cmd.add(jarPath);
|
||||
cmd.addAll(args);
|
||||
//0312
|
||||
// 0312
|
||||
log.info("exec jar command: {}", cmd);
|
||||
ProcessBuilder pb = new ProcessBuilder(cmd);
|
||||
pb.redirectErrorStream(true);
|
||||
@@ -160,4 +158,3 @@ public class ExternalJarRunner {
|
||||
return v;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ public class InferenceProperties {
|
||||
private String batchUrl;
|
||||
private String geojsonDir;
|
||||
private String jarPath;
|
||||
//0312
|
||||
// 0312
|
||||
private String jarPathV2;
|
||||
private String inferenceServerName;
|
||||
}
|
||||
|
||||
@@ -48,9 +48,7 @@ public class SecurityConfig {
|
||||
auth
|
||||
|
||||
// .requestMatchers("/chunk_upload_test.html").authenticated()
|
||||
.requestMatchers("/monitor/health"
|
||||
, "/monitor/health/**"
|
||||
)
|
||||
.requestMatchers("/monitor/health", "/monitor/health/**")
|
||||
.permitAll()
|
||||
|
||||
// 맵시트 영역 전체 허용 (우선순위 최상단)
|
||||
@@ -119,8 +117,7 @@ public class SecurityConfig {
|
||||
"/api/user/**",
|
||||
"/api/my/menus",
|
||||
"/api/training-data/label/**",
|
||||
"/api/training-data/review/**"
|
||||
)
|
||||
"/api/training-data/review/**")
|
||||
.authenticated()
|
||||
|
||||
// 나머지는 메뉴권한
|
||||
|
||||
@@ -255,9 +255,9 @@ public class MapSheetInferenceJobService {
|
||||
// 추론 종료일때 shp 파일 생성
|
||||
String batchIdStr = batchIds.stream().map(String::valueOf).collect(Collectors.joining(","));
|
||||
|
||||
//0312 shp 파일 비동기 생성 (바꿔주세요)
|
||||
shpPipelineService.makeShapeFile(sheet.getUid(),batchIds);
|
||||
//shpPipelineService.runPipeline(jarPath, datasetDir, batchIdStr, sheet.getUid());
|
||||
// 0312 shp 파일 비동기 생성 (바꿔주세요)
|
||||
shpPipelineService.makeShapeFile(sheet.getUid(), batchIds);
|
||||
// shpPipelineService.runPipeline(jarPath, datasetDir, batchIdStr, sheet.getUid());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.kamco.cd.kamcoback.scheduler.service;
|
||||
import com.kamco.cd.kamcoback.common.service.ExternalJarRunner;
|
||||
import com.kamco.cd.kamcoback.postgres.core.InferenceResultCoreService;
|
||||
import com.kamco.cd.kamcoback.scheduler.config.ShpKeyLock;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
@@ -19,8 +18,7 @@ public class ShpPipelineService {
|
||||
private final ExternalJarRunner externalJarRunner;
|
||||
private final ShpKeyLock shpKeyLock;
|
||||
|
||||
|
||||
//0312 shp 파일 비동기 생성
|
||||
// 0312 shp 파일 비동기 생성
|
||||
@Async("makeShapeFile")
|
||||
public void makeShapeFile(String inferenceId, List<Long> batchIds) {
|
||||
if (!shpKeyLock.tryLock(inferenceId)) {
|
||||
@@ -44,7 +42,6 @@ public class ShpPipelineService {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* shp 파일 생성 1. merge 생성 2. 생성된 merge shp 파일로 geoserver 등록, 3.도엽별로 shp 생성
|
||||
*
|
||||
@@ -73,15 +70,15 @@ public class ShpPipelineService {
|
||||
externalJarRunner.run(jarPath, batchIds, inferenceId, "", "MERGED");
|
||||
|
||||
// uid 기준 shp 파일 geoserver 등록
|
||||
// String register =
|
||||
// Paths.get(datasetDir, inferenceId, "merge", inferenceId + ".shp").toString();
|
||||
// log.info("register={}", register);
|
||||
// externalJarRunner.run(jarPath, register, inferenceId);
|
||||
//
|
||||
// // uid 기준 도엽별 shp, geojson 파일 생성
|
||||
// externalJarRunner.run(jarPath, batchIds, inferenceId, "", "RESOLVE");
|
||||
//
|
||||
// log.info("SHP pipeline finished. inferenceId={}", inferenceId);
|
||||
// String register =
|
||||
// Paths.get(datasetDir, inferenceId, "merge", inferenceId + ".shp").toString();
|
||||
// log.info("register={}", register);
|
||||
// externalJarRunner.run(jarPath, register, inferenceId);
|
||||
//
|
||||
// // uid 기준 도엽별 shp, geojson 파일 생성
|
||||
// externalJarRunner.run(jarPath, batchIds, inferenceId, "", "RESOLVE");
|
||||
//
|
||||
// log.info("SHP pipeline finished. inferenceId={}", inferenceId);
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("SHP pipeline failed. inferenceId={}", inferenceId, e);
|
||||
|
||||
@@ -2,13 +2,13 @@ package com.kamco.cd.kamcoback.test;
|
||||
|
||||
import com.kamco.cd.kamcoback.config.api.ApiResponseDto;
|
||||
import com.kamco.cd.kamcoback.scheduler.service.ShpPipelineService;
|
||||
import io.swagger.v3.oas.annotations.Hidden;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.media.Content;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import java.util.List;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.ErrorResponse;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -16,18 +16,17 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Tag(name = "test shape api", description = "test shape api")
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
|
||||
@RequestMapping("/api/test")
|
||||
public class TestShapeApiController {
|
||||
|
||||
private final ShpPipelineService shpPipelineService;
|
||||
|
||||
@Operation(summary = "shapefile 생성 테스트", description = "지정된 inference ID와 batch ID 목록으로 shapefile을 생성합니다.")
|
||||
@Operation(
|
||||
summary = "shapefile 생성 테스트",
|
||||
description = "지정된 inference ID와 batch ID 목록으로 shapefile을 생성합니다.")
|
||||
@ApiResponses({
|
||||
@ApiResponse(
|
||||
responseCode = "200",
|
||||
@@ -44,8 +43,7 @@ public class TestShapeApiController {
|
||||
})
|
||||
@GetMapping("/make-shapefile")
|
||||
public ApiResponseDto<String> makeShapeFile(
|
||||
@RequestParam String inferenceId,
|
||||
@RequestParam List<Long> batchIds) {
|
||||
@RequestParam String inferenceId, @RequestParam List<Long> batchIds) {
|
||||
shpPipelineService.makeShapeFile(inferenceId, batchIds);
|
||||
return ApiResponseDto.ok("Shapefile 생성이 시작되었습니다. inferenceId: " + inferenceId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user