Job Scheduler란?
일정시간, 주기적으로 작동되는 배치 프로그램을 만들 때 사용하는 라이브러리이다.
구성요소
JobDetail
: 스케줄러에서 수행할 작업을 담을 JOB을 생성, Job을 상속하는 클래스를 JobBuilder.noewJob()을 이용하여 전달해야 한다.
JobDataMap
: 스케줄러에서 JOB이 실행될 때 사용할 변수 값을 전달하는데 사용한다. (key-value 형식으로 값을 전달하고 JOB을 수행할 때 값을 꺼낼 수 있다.)
Trigger
: 스케줄러를 어떤 방식으로, 어떤 주기로 작동할 지 결정한다.
Scheduler
: 생성된 JOB과 Trigger를 입력하여 스케줄러를 실행한다.설치는 간단하다. 다운로드 받고, 라이브러리를 빼 두면된다.
다운로드 링크는 여기가면 된다. -> Quartz공식사이트
들어가면 첫 번째로 이런 창이 뜬다. 다운로드를 눌러주자.
Stable(안정된)버전을 다운로드 받아줬다.
파일에서 압축을 풀고,
lib폴더에 있는 jar파일들을 사용하면된다. 나는 Quartz라는 폴더에 따로 묶어서 jar 모아둔 곳에 묶어뒀다.
설치 끝!
사용설정도 정말 간단하다.
이클립스에서 Web Dynamic Project를 만들어 준 후,
Web Dynamic Project
- src
- main
- webapp
- WEB-INF
- lib
에 추가를 해줘야 한다.
클래스를 생성하면서 interface add
버튼을 눌러서 org.quartz라는 job 인터페이스를 오버라이드해준다.
같은 패키지에 Listener를 생성해준다.
Listener는 Tomcat에 귀를 쫑긋 세워놓고 듣고있다가 자기를 부르면 움직이는 것이다. (항상켜져있다.)
Next를 누르면 각 어떤 상황에 사용할지 체크 할 수 있다.
그 다음 Next를 누르면 참조하고 있는 interface목록이 나온다. 확인 후 Finish
를 누르면 된다.
생성된 Listener는 아래와 같은 구조를 가진다.
@WebListener // 나는 리스너입니다!
public class StudentListener implements ServletContextListener {
// field
private Scheduler scheduler;
// Default constructor. 생성자
// Scheduler scheduler 생성
public StudentListener() {
}
// contextDestroyed() 메소드
// scheduler 종료
public void contextDestroyed(ServletContextEvent arg0) {
}
// contextInitialized() 메소드
// Job, Trigger 생성
// scheduler에 Job과 Trigger 등록
// scheduler 시작
public void contextInitialized(ServletContextEvent arg0) {
}
}
cron 명령어를 생성해주는 사이트를 이용하면 정확하고 편하다.
cron maker 사이트
좋은 정보 감사합니다.