Program/JAVA
Quartz 스케줄러
마니씨
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 자동으로 실행할수 있도록 추가
3. quartz.properties 생성
4. SchedulerInit.java 생성
5. Schedule.java 생성
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("스케줄러 실행중"); } } |