[Java] java로 구현한 코드 bat 스케쥴링
- 서론 -
얼마 전에 타사 api를 호출해와서 DB에 저장하는 로직을 java로 구현하고 일 1회 실행시키는 업무가 주어졌다.
java 파일에 로직을 다 짜고 실행시키면 DB에 들어가는 것까지 확인했는데,
이 파일을 어떻게 스케쥴링하면 좋을까 고민이 되었다.
고민된 이유 : 이전에 작성한 게시글 ( https://in0-pro.tistory.com/62 )에서 cron으로 스케쥴링을 구현했는데,
다음에는 윈도우 작업 스케쥴러를 이용하라고 지시를 받았기 때문,,
(해당 시스템의 서버는 리눅스가 아니라 윈도우다.)
그래서 다른 시스템에 올라가 있는 작업 스케쥴들을 확인해봤는데, 전부 vbs 파일을 등록해서 실행하고 있었다.
java 코드를 vbs로 금방 바꾸기도 쉽지 않을 것 같아서 여기저기 찾아본 결과..
java를 실행할 수 있는 jar 파일로 컴파일하고, 이 jar 파일을 실행하는 bat 파일을 만드는 것이 가장 해볼 만한 것 같았다.
-여기부터 본론-
1. 작성한 java 코드가 제대로 동작하는지 실행시켜본다.
2. 해당 파일을 Runnable JAR file로 Export 한다.
편의상 java 파일과 같은 경로에 jar 파일을 생성했다.
Library handling은 검색해보니 보통 두 번째로 많이들 체크하더라.
첫 번째는 내부 라이브러리만, 두 번째는 외부 라이브러리까지, 세 번째는 폴더를 따로 생성하는 형태라고 한다.
이렇게 jar 파일이 만들어진다.
3. cmd창에서 jar 실행해본다.
java -jar test.jar 이렇게 실행하면 아마 한글이 다 깨져서 나올 것이다.
인코딩이 필요하다.
java -jar -Dfile.encoding=UTF-8 test.jar
이렇게 인코딩 명령어를 합쳐서 실행하면 제대로 나온다.
4. bat 파일을 만든다.
방금 실행했던 명령어를 메모장에 붙여 넣고, txt가 아닌 bat 확장자로 저장한다.
5. 이제 윈도우 작업 스케쥴러를 열어서 배치파일을 등록하면 된다.
주의할 점 : 시작 위치에 배치파일의 위치를 입력하고,
프로그램/스크립트 칸에는 배치 파일명만 입력한다.
6. 해당 시간에 정상적으로 작동하는지 확인
끝!