- 서론 -
얼마 전에 타사 api를 호출해와서 DB에 저장하는 로직을 java로 구현하고 일 1회 실행시키는 업무가 주어졌다.
java 파일에 로직을 다 짜고 실행시키면 DB에 들어가는 것까지 확인했는데,
이 파일을 어떻게 스케쥴링하면 좋을까 고민이 되었다.
고민된 이유 : 이전에 작성한 게시글 ( https://in0-pro.tistory.com/62 )에서 cron으로 스케쥴링을 구현했는데,
다음에는 윈도우 작업 스케쥴러를 이용하라고 지시를 받았기 때문,,
(해당 시스템의 서버는 리눅스가 아니라 윈도우다.)
그래서 다른 시스템에 올라가 있는 작업 스케쥴들을 확인해봤는데, 전부 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. 해당 시간에 정상적으로 작동하는지 확인
끝!
출처 : [Java] java로 구현한 코드 bat 스케쥴링 (tistory.com)
'Back-End > Java' 카테고리의 다른 글
[Java] tomcat 에서 SSL 적용시 Cannot recover key 에러 날 때 (0) | 2023.03.27 |
---|---|
[Java] Java keytool - pfx에서 jks(JavaKeyStore)로 변환 (0) | 2023.03.27 |
[Java] FTP 파일 전송하는 방법 (Apache commons-net Lib) (0) | 2023.03.21 |
[Java] JAVA에서 JSON API parse시 ALLOW_NON_NUMERIC_NUMBERS, Object타입 등의 에러해결 (0) | 2023.03.07 |
[Java] RSA 방식을 이용한 전자 서명 (0) | 2023.02.15 |