From 8d8ea5344973e1bac12ecae681510cef41a5cd43 Mon Sep 17 00:00:00 2001 From: HeungTak Lee Date: Fri, 5 Dec 2025 08:31:11 +0900 Subject: [PATCH] =?UTF-8?q?[=EC=B6=94=EA=B0=80]=20-=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=EC=84=B8=EC=8A=A4=20=EC=9E=AC=EA=B8=B0=EB=8F=99=20=EB=93=B1?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=A0=95=EC=83=81=20=EC=A2=85=EB=A3=8C?= =?UTF-8?q?=EB=90=98=EC=A7=80=20=EC=95=8A=EC=9D=80=20Job=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC=EC=9A=A9=20=EC=9E=84=EC=8B=9C=20sql=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/sql/old_job_cleanup.sql | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/main/resources/sql/old_job_cleanup.sql diff --git a/src/main/resources/sql/old_job_cleanup.sql b/src/main/resources/sql/old_job_cleanup.sql new file mode 100644 index 0000000..64e4327 --- /dev/null +++ b/src/main/resources/sql/old_job_cleanup.sql @@ -0,0 +1,67 @@ + -- 오래된 STARTED 상태 Job을 정리하는 SQL 쿼리입니다. +-- snp_data 스키마에 batch_ 접두사를 사용하는 예시입니다. 실제 스키마에 맞추어 수정해서 사용하세요. + +-- 참고: 시간 간격 변경이 필요하면 INTERVAL '2 hours' 부분을 수정하세요: +-- 1시간: INTERVAL '1 hour' +-- 30분: INTERVAL '30 minutes' +-- 1일: INTERVAL '1 day' + +-- 2시간 이상 경과한 STARTED 상태 Job Execution 조회 +SELECT + je.job_execution_id, + ji.job_name, + je.status, + je.start_time, + je.end_time, + NOW() - je.start_time AS elapsed_time +FROM snp_data.batch_job_execution je + JOIN snp_data.batch_job_instance ji ON je.job_instance_id = ji.job_instance_id +WHERE je.status = 'STARTED' + AND je.start_time < NOW() - INTERVAL '2 hours' +ORDER BY je.start_time; + + +-- Step Execution을 FAILED로 변경 +UPDATE snp_data.batch_step_execution +SET + status = 'FAILED', + exit_code = 'FAILED', + exit_message = 'Manually cleaned up - stale execution (process restart)', + end_time = NOW(), + last_updated = NOW() +WHERE job_execution_id IN ( + SELECT job_execution_id + FROM snp_data.batch_job_execution + WHERE status = 'STARTED' + AND start_time < NOW() - INTERVAL '2 hours' + ); + + + +-- Job Execution을 FAILED로 변경 +UPDATE snp_data.batch_job_execution +SET + status = 'FAILED', + exit_code = 'FAILED', + exit_message = 'Manually cleaned up - stale execution (process restart)', + end_time = NOW(), + last_updated = NOW() +WHERE status = 'STARTED' + AND start_time < NOW() - INTERVAL '2 hours'; + + + +-- 정리 후 STARTED 상태 확인 +SELECT + je.job_execution_id, + ji.job_name, + je.status, + je.exit_code, + je.start_time, + je.end_time +FROM snp_data.batch_job_execution je + JOIN snp_data.batch_job_instance ji ON je.job_instance_id = ji.job_instance_id +WHERE je.status IN ('STARTED', 'FAILED') +ORDER BY je.start_time DESC + LIMIT 20; +