리커버리 수정 #153
@@ -102,8 +102,8 @@ public class JobRecoveryOnStartupService {
|
||||
} else {
|
||||
|
||||
// 3-3) 산출물이 부족하면 중단처리
|
||||
// 산출물이 부족하면 "실패 확정"이 아니라 "중단/보류"로 처리해서
|
||||
// 운영자가 재시작(재개)할 수 있게 한다.
|
||||
// 산출물이 부족하면 "중단/보류"로 처리
|
||||
// 운영자가 재시작 할 수 있게 한다.
|
||||
log.warn(
|
||||
"[RECOVERY] outputs incomplete. mark PAUSED/STOP for restart. jobId={} reason={}",
|
||||
job.getId(),
|
||||
@@ -124,14 +124,13 @@ public class JobRecoveryOnStartupService {
|
||||
|
||||
// 4) 컨테이너는 존재하고, 아직 running=true
|
||||
// - 서버만 재기동됐고 컨테이너는 그대로 살아있는 케이스
|
||||
// - 실행중 docker 를 stop 하고 이어하기를 한다,
|
||||
// - 실행중 docker 를 kill 하고 이어하기를 한다,
|
||||
if (state.running()) {
|
||||
log.warn("[RECOVERY] container still running. force kill. container={}", containerName);
|
||||
|
||||
try {
|
||||
// ============================================================
|
||||
// 1) docker kill (SIGKILL) 바로 전송
|
||||
// - stop은 grace period가 있지만
|
||||
// - kill은 즉시 종료
|
||||
// ============================================================
|
||||
ProcessBuilder pb = new ProcessBuilder("docker", "kill", containerName);
|
||||
|
||||
Reference in New Issue
Block a user