From 711c8fcdca3b729d498fe92103919ddd9afa4ac9 Mon Sep 17 00:00:00 2001 From: ysCha Date: Fri, 13 Feb 2026 09:23:38 +0900 Subject: [PATCH] =?UTF-8?q?batch=20job=EC=9D=B4=208080,=208081=20=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=8B=A4=ED=96=89=EB=90=98=EB=8A=94=EA=B2=83=20808?= =?UTF-8?q?0=EB=A7=8C=20=EC=8B=A4=ED=96=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/interplug/qcast/batch/JobLauncherController.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/com/interplug/qcast/batch/JobLauncherController.java b/src/main/java/com/interplug/qcast/batch/JobLauncherController.java index 9cd27498..12c00301 100644 --- a/src/main/java/com/interplug/qcast/batch/JobLauncherController.java +++ b/src/main/java/com/interplug/qcast/batch/JobLauncherController.java @@ -39,6 +39,9 @@ public class JobLauncherController { @Value("${spring.profiles.scheduler}") private String scheduler; + @Value("${server.port:8080}") + private int serverPort; + /** * 서버 시작 시 실행 중(STARTED)인 상태로 남은 Job들을 FAILED 처리 */ @@ -253,6 +256,12 @@ public class JobLauncherController { * 공통 스케줄러 실행 메소드 */ private String executeScheduledJob(String jobName) throws JobInstanceAlreadyCompleteException, JobExecutionAlreadyRunningException, JobParametersInvalidException, JobRestartException { + // 8080 포트 인스턴스에서만 스케줄러 실행 (멀티 인스턴스 데드락 방지) + if (serverPort != 8080) { + log.debug("스케줄러는 8080 포트 인스턴스에서만 실행됩니다. 현재 포트: {}, Job: {} 스킵", serverPort, jobName); + return "Scheduler runs only on port 8080. Current port: " + serverPort; + } + Job job = jobs.get(jobName); if (job == null) { log.error("Job {} not found", jobName);