Posts

Showing posts from 2020

Spring Batch : JobExecutionAlreadyRunningException: A job execution for this job is already running

스프링 배치가 운영되고 있는 서버가 예상치 못한 종료를 하게 되면 다음번 실행에 아래와 같은 예외 코드가 떨어지게 됩니다. ​ application . log . 2020 - 03 - 17.0 . log : Caused by : org . springframework . batch . core . repository . JobExecutionAlreadyRunningException : A job execution for this job is already running : JobInstance : id = 3 , version = 0 , Job = [ archiveOldChatsJob ]  ​ 잡이 시작된 시점에 메타 테이블에 STARTED 를 기록 했지만, 서버가 비정상 종료 됨으로서 결과를 기록 하지 못해서 발생 하는 현상으로 보여지는데, ​ 애초에 서버의 비정상 종료가 일어나면 안되는것이고, 일어나더라도 자동적으로 복구가 되기를 바라지만, 그 훌륭한 스프링도 배치쪽은 그렇게 많이 신경을 쓰지 않는것 같네요. ​ 우선, 일어난 문제 현상은 해결을 해야 하는데, 좀 찾아보면 몇가지 해결방안이 보입니다. 제가 선택한 방법은 메타정보가 저장되는 디비 테이블을 수동으로 업데이트 하는것입니다.  UPDATE BATCH_JOB_EXECUTION SET END_TIME = SYSTIMESTAMP , STATUS = 'FAILED' , EXIT_CODE = 'COMPLETED' WHERE JOB_EXECUTION_ID = ( SELECT MAX ( JOB_EXECUTION_ID ) FROM BATCH_JOB_EXECUTION WHERE JOB_INSTANC

자바스크립트 코딩 규약 - Javascript Code Conventions

Douglas Crockford 의 영어 원문( https://www.crockford.com/code.html )을 번역 한 글입니다. 다른 언어들의 코딩 규칙 혹은 기존의 자바스크립트 규칙들과 비교 했을때 특별한 내용은 없지만, 각각의 규칙들을 언급하게 된 이유나 기술적인 배경에 대해서 생각 해보는 시간을 가지려고 시작 했습니다. ​ 직접 번역 한내용이라, 의역 및 제 개인적인 생각도 포함 되어있습니다. (직접 번역했지만 번역기같이 표현되는게, 제 능력부족을 명확하게 보여주면서도 좀 억울하네요.^^; 적당한 표현이 떠오를때마다 계속 수정 하겠습니다.) ​ 개인적인 의견은 "역자주"를 표시 했으며, 어색한 표현들은 조금씩 추가적으로 수정을 하도록 하겠습니다. ​ ** 잘못된 내용에 대한 따끔한 지적이나 의견은 항상 감사합니다. ** 원문의 초안 자체는 공개된지 오래됬지만 2019년에 ES6 기반으로 예제코드 등이 조금씩 수정된것으로 보입니다. ​   Code Conventions for the JavaScript Programming Language Code Conventions for the JavaScript Programming Language This is a set of coding conventions and rules for use in JavaScript programming. The long-term value of software to an organization is in direct proportion to the quality of the codebase. Over its lifetime, a program will be handled ... www.crockford.com ​ ​ 2019-05-15 ​ Code Conventions for the JavaScript Programming Language ​