티스토리 뷰

DeVeLoP

Servlet 4.0 에서 quartz 이용

freecatz 2020. 10. 28. 11:00

Tomcat 9 + Servlet 4.0 + Classic JSP 에서 quartz 를 이용하여 스케쥴러를 이용할 수 있다.

 

필요할 라이브러리는  쿼츠 홈페이지 에서 다운로드 받거나 아래 첨부 파일을 이용 하여도 된다.

quartz-2.4.0-SNAPSHOT.jar
0.66MB
slf4j-api-1.7.7.jar
0.03MB

위 두개의 파일을  WEB-INF/lib 에 복사 하여 넣는다.

 

slf4j-api-1.7.7.jar 이 없는 경우 어플리케이션이 정상 동작 하지 않는다.

 

 

 

1. Tomcat이 구동 되면서, 함께 올라갈 Listener Class 를 작성 한다.

package kr.pe.freecatz.jsp.common;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

@WebListener
public class HttpServletContextListener implements ServletContextListener {

    public HttpServletContextListener(){

    }

    @Override
    public void contextInitialized(ServletContextEvent event) {

        ScheduleRegister sr = new ScheduleRegister();
        sr.execute();

    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        System.out.println("HttpServletContextListener.contextDestroyed() 호출 됨");
    }

}

 

 

2. 스케쥴 작업을 등록할 ScheduleRegister Class 를 작성 한다.

package kr.pe.freecatz.jsp.common;

import kr.pe.freecatz.jsp.scheduler.DefaultSchedule;
import org.quartz.Scheduler;
import org.quartz.impl.StdSchedulerFactory;

import static org.quartz.CronScheduleBuilder.cronSchedule;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;

public class ScheduleRegister {

    public ScheduleRegister() {

    }

    public void execute() {

        try {
            Scheduler scheduler = new StdSchedulerFactory().getScheduler();

            scheduler.scheduleJob(
                    newJob(DefaultSchedule.class)
                            .withIdentity("defaultSchedule", Scheduler.DEFAULT_GROUP)
                            .build(),
                    newTrigger()
                            .withIdentity("defaultTrgger", Scheduler.DEFAULT_GROUP)
                            .withSchedule(cronSchedule("*/5 * * * * ?"))
                            .build());
            
            scheduler.start();

        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}

 

 

3. 주기적으로 작업할 내용이 들어 있는 DefaultSchedule Class 를 작성 한다.

package kr.pe.freecatz.jsp.schedule;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.util.Date;

public class DefaultSchedule implements Job {

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println(new Date() + " -----------> Hello Classic JSP");
    }
    
}

 

 

4. tomcat를 실행 하고 로그를 확인 한다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함