본문 바로가기
Programming/Java

[Java] java로 구현한 코드 bat 스케쥴링

by IN.0 2022. 3. 7.
728x90
반응형

- 서론 -


얼마 전에 타사 api를 호출해와서 DB에 저장하는 로직을 java로 구현하고 일 1회 실행시키는 업무가 주어졌다.

java 파일에 로직을 다 짜고 실행시키면 DB에 들어가는 것까지 확인했는데,

이 파일을 어떻게 스케쥴링하면 좋을까 고민이 되었다.

고민된 이유 : 이전에 작성한 게시글 ( https://in0-pro.tistory.com/62 )에서 cron으로 스케쥴링을 구현했는데,

 

[Spring] cron으로 스케쥴링 구현하기 (쉽고 자세한 설명)

회사에서 스케쥴링 구현으로 4시간 동안 삽질해서 알아냈다.. 초등학생도 알기 쉽게 차근차근 설명해드림! (spring 프로젝트를 생성했다는 가정 하에 시작함) 1. 스케쥴러 로직이 들어갈 자리를 만

in0-pro.tistory.com

다음에는 윈도우 작업 스케쥴러를 이용하라고 지시를 받았기 때문,,

(해당 시스템의 서버는 리눅스가 아니라 윈도우다.)

 

그래서 다른 시스템에 올라가 있는 작업 스케쥴들을 확인해봤는데, 전부 vbs 파일을 등록해서 실행하고 있었다.

java 코드를 vbs로 금방 바꾸기도 쉽지 않을 것 같아서 여기저기 찾아본 결과..

java를 실행할 수 있는 jar 파일로 컴파일하고, 이 jar 파일을 실행하는 bat 파일을 만드는 것이 가장 해볼 만한 것 같았다.

 

 

-여기부터 본론-


1. 작성한 java 코드가 제대로 동작하는지 실행시켜본다.

아무거나 출력하긴 심심해서 네이버 검색 api를 호출해보았다.

 

2. 해당 파일을 Runnable JAR file로 Export 한다.

Runnable JAR file
Library handling은 두번째

편의상 java 파일과 같은 경로에 jar 파일을 생성했다.

Library handling은 검색해보니 보통 두 번째로 많이들 체크하더라.

첫 번째는 내부 라이브러리만, 두 번째는 외부 라이브러리까지, 세 번째는 폴더를 따로 생성하는 형태라고 한다.

jar

이렇게 jar 파일이 만들어진다.

 

3. cmd창에서 jar 실행해본다.

처참하게 깨진다

java -jar test.jar 이렇게 실행하면 아마 한글이 다 깨져서 나올 것이다.

인코딩이 필요하다.

잘 나온다

java -jar -Dfile.encoding=UTF-8 test.jar

이렇게 인코딩 명령어를 합쳐서 실행하면 제대로 나온다.

 

4. bat 파일을 만든다.

test.bat

방금 실행했던 명령어를 메모장에 붙여 넣고, txt가 아닌 bat 확장자로 저장한다.

bat 파일 생성됨

 

5. 이제 윈도우 작업 스케쥴러를 열어서 배치파일을 등록하면 된다.

'작업 만들기' 클릭
설정은 쉽다
시작위치, 프로그램 설정 주의

주의할 점 : 시작 위치에 배치파일의 위치를 입력하고, 

프로그램/스크립트 칸에는 배치 파일명만 입력한다.

 

6. 해당 시간에 정상적으로 작동하는지 확인

 

끝!

728x90
반응형

댓글