- 프로세스 재기동 등으로 정상 종료되지 않은 Job 정리용 임시 sql 추가
This commit is contained in:
HeungTak Lee 2025-12-05 08:31:11 +09:00
부모 322ecb12a6
커밋 8d8ea53449

파일 보기

@ -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;