[ Job Scheduler ] Quartz 스케줄러 다운로드 받고 설정하기

duck-ach·2022년 10월 20일
1

JSP

목록 보기
10/14
post-thumbnail

Job Scheduler란?
일정시간, 주기적으로 작동되는 배치 프로그램을 만들 때 사용하는 라이브러리이다.

구성요소
JobDetail : 스케줄러에서 수행할 작업을 담을 JOB을 생성, Job을 상속하는 클래스를 JobBuilder.noewJob()을 이용하여 전달해야 한다.
JobDataMap : 스케줄러에서 JOB이 실행될 때 사용할 변수 값을 전달하는데 사용한다. (key-value 형식으로 값을 전달하고 JOB을 수행할 때 값을 꺼낼 수 있다.)
Trigger : 스케줄러를 어떤 방식으로, 어떤 주기로 작동할 지 결정한다.

  • SimpleTrigger : start time, end time, interval time, repeat times 설정
  • CronTrigger : Cron 형식으로 일정 주기를 지정
    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 maker

cron 명령어를 생성해주는 사이트를 이용하면 정확하고 편하다.
cron maker 사이트

profile
자몽 허니 블랙티와 아메리카노 사이 그 어딘가

1개의 댓글

comment-user-thumbnail
2022년 10월 22일

좋은 정보 감사합니다.

답글 달기