상세 컨텐츠

본문 제목

Quartz 스케줄러

Program/JAVA

by 마니씨 2010. 4. 19. 15:44

본문

주기적으로 실행해야 할 작업이 있을경우 사용하는 스케줄러

1. quartz 다운로드 : http://www.quartz-scheduler.org/download/
    다운받은후 WEB-INF/lib 에 다운받은 quartz-1.7.jar을 추가한다.

2. WEB-INF/web.xml 에 quartz 자동으로 실행할수 있도록 추가
<servlet>    
    <display-name>Quartz Initializer Servlet</display-name>    
    <servlet-name>QuartzInitializer</servlet-name>    
    <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>    
    <init-param>    
        <param-name>config-file</param-name>    
        <param-value>com/ineast/scheduler/quartz.properties</param-value>    
    </init-param>    
    <init-param>    
        <param-name>shutdown-on-unload</param-name>    
        <param-value>true</param-value>    
    </init-param>    
    <init-param>    
        <param-name>start-scheduler-on-load</param-name>    
        <param-value>true</param-value>    
    </init-param>    
    <load-on-startup>1</load-on-startup>   
</servlet>   
<servlet>    
    <display-name>SchedulerInit</display-name>    
    <servlet-name>SchedulerInit</servlet-name>    
    <servlet-class>com.ineast.scheduler.SchedulerInit</servlet-class>    
    <load-on-startup>2</load-on-startup>   
</servlet>   
<servlet-mapping>    
    <servlet-name>SchedulerInit</servlet-name>    
    <url-pattern>/SchedulerInit</url-pattern>   
</servlet-mapping>


3. quartz.properties 생성
org.quartz.scheduler.instanceName = SchedulerInit   
org.quartz.scheduler.instanceId = AUTO   
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool   
org.quartz.threadPool.threadCount = 12   
org.quartz.threadPool.threadPriority = 5   
org.quartz.jobStore.misfireThreshold = 60000   
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore 
org.quartz.scheduler.instanceName = SchedulerInit
org.quartz.scheduler.instanceId = AUTO
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 12
org.quartz.threadPool.threadPriority = 5
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

4. SchedulerInit.java 생성
package com.ineast.scheduler;    

import java.text.ParseException;   
import org.quartz.CronTrigger;   
import org.quartz.JobDetail;   
import org.quartz.Scheduler;   
import org.quartz.SchedulerException;   
import org.quartz.SchedulerFactory;   
import org.quartz.impl.StdSchedulerFactory;   
  
public class SchedulerInit {    
    private SchedulerFactory schedFact;    
    private Scheduler sched;    

    public SchedulerInit() {    
        try {    
            schedFact = new StdSchedulerFactory();    
            sched = schedFact.getScheduler();    
            sched.start();    

            JobDetail job1 = new JobDetail("Schedule", "group1", Schedule.class);     
            CronTrigger trigger1 = new CronTrigger("Trigger_Schedule", "group1", "0/30 * * * * ?");     
            sched.scheduleJob(job1, trigger1);    
        } catch (SchedulerException e) {    
            e.printStackTrace();    
        } catch (ParseException e) {    
            e.printStackTrace();    
        }    
    }    

    public static void main(String[] args) {    
        new SchedulerInit();    
    }   
}

5. Schedule.java 생성
package com.ineast.scheduler;   

import org.quartz.Job;   
import org.quartz.JobExecutionContext;   
import org.quartz.JobExecutionException;   
  
public class Schedule implements Job {      
    public void execute(JobExecutionContext context) throws JobExecutionException {    
        getMyAlarmData(); 
    }    

    public void getMyAlarmData() {   
        System.out.println("스케줄러 실행중"); 
    }    
}

'Program > JAVA' 카테고리의 다른 글

java smtp Mail 발송  (0) 2010.04.19
CronTrigger 의 표현식(Quartz)  (0) 2010.04.19
GRIDBAGLAYOUT 사용하기  (1) 2010.03.03
좋은 Swing 자료  (0) 2010.03.03
Swing 을 이용한 RAISON 담배~~~  (0) 2010.02.28

관련글 더보기