diff --git a/B04_PreProcess/B04_PreProcess_Api_Fetch.ts b/B04_PreProcess/B04_PreProcess_Api_Fetch.ts index 0845ae71..161b63f1 100644 --- a/B04_PreProcess/B04_PreProcess_Api_Fetch.ts +++ b/B04_PreProcess/B04_PreProcess_Api_Fetch.ts @@ -11,7 +11,12 @@ * - 오류 응답 형식 {status:"error", message:"..."}을 Error로 변환. * ========================================================================== */ -import { API_ANALYSIS_TIMEOUT_MS, API_BASE_URL, API_TIMEOUT_MS } from "@config/config_frontend"; +import { + API_ANALYSIS_TIMEOUT_MS, + API_BASE_URL, + API_SURFACE_BUILD_TIMEOUT_MS, + API_TIMEOUT_MS, +} from "@config/config_frontend"; /** 지표면 분석 실행 요청 (SurfaceAnalyzeRequest) */ export interface SurfaceAnalyzeRequest { @@ -178,11 +183,11 @@ export async function analyzeSurface( projectId: string, request: SurfaceAnalyzeRequest, ): Promise { - // 조합 하나를 새로 만드는 요청이라 기본 30초로는 못 끝난다. + // 조합 하나를 새로 만드는 요청 — 실측 114초(4,900만 점)라 분석용 60초로도 abort 된다. return requestJson( `/projects/${projectId}/surface/analyze`, { method: "POST", body: JSON.stringify(request) }, - API_ANALYSIS_TIMEOUT_MS, + API_SURFACE_BUILD_TIMEOUT_MS, ); } diff --git a/config/config_frontend.ts b/config/config_frontend.ts index be85b77d..a8321ebb 100644 --- a/config/config_frontend.ts +++ b/config/config_frontend.ts @@ -20,6 +20,11 @@ export const API_TIMEOUT_MS = 30_000; * 일반 요청에 이 값을 쓰면 장애 시 화면이 오래 멈추므로 분석 엔드포인트에만 쓴다. */ export const API_ANALYSIS_TIMEOUT_MS = 60_000; +/** 지표면 모델 한 조합을 새로 만드는 요청용 타임아웃 (ms). + * 구조화된 점군 전체를 다시 보간하므로 실측 114초(4,900만 점, 캐시 있음)가 걸렸다. + * 큰 LAS는 더 걸리므로 넉넉히 둔다 — 사용자에게는 모달에서 미리 알린다. */ +export const API_SURFACE_BUILD_TIMEOUT_MS = 900_000; + /** B03~B09 워크플로우에서 사용할 현재 프로젝트 UUID 저장 키 */ export const CURRENT_PROJECT_ID_KEY = "frd_current_project_id";