- 전체
- JAVA 일반
- JAVA 수학
- JAVA 그래픽
- JAVA 자료구조
- JAVA 인공지능
- JAVA 인터넷
- Java Framework
- Java GUI (AWT,SWING,SWT,JFACE)
- SWT and RCP (web RAP/RWT)[eclipse], EMF
JAVA 일반 [Java] Quartz (쿼츠)를 사용하여 자바 스케줄링(scheduling) 하기
2018.02.12 13:06
[Java] Quartz (쿼츠)를 사용하여 자바 스케줄링(scheduling) 하기
Quartz : http://www.opensymphony.com/
tutorial : http://quartz-scheduler.org/docs/tutorial/index.html
추가 Library
- Apache Commons Collections >> http://commons.apache.org/collections/
- Apache Commons Logging >> http://commons.apache.org/logging/
- Apache Log4j >> http://logging.apache.org/log4j/1.2/index.html
참고 : http://blog.naver.com/kst7132?Redirect=Log&logNo=140101991602
http://blog.naver.com/minis24?Redirect=Log&logNo=80105633208
스트러츠에서 Quartz 사용 : http://mygeni.tistory.com/79
스프링에서 Quartz 사용 : http://suya55.springnote.com/pages/1126992
CronTrigger 사용한 예제
먼저 테스트로 사용할 Job 클래스 두개를 아래와 같이 만들어 준다. import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; public class TestJob1 implements Job { public void execute(JobExecutionContext context) { System.out.println("TestJob1.execute() is Executed... : " + new Date()); } }
import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; public class TestJob2 implements Job { public void execute(JobExecutionContext context) { System.out.println("TestJob2.execute() is Executed... : " + new Date()); } }
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 TestCronTrigger { private SchedulerFactory schedFact; private Scheduler sched; public TestCronTrigger() { try { // 스케쥴 생성후 시작 schedFact = new StdSchedulerFactory(); sched = schedFact.getScheduler(); sched.start(); // Job1 생성 (Parameter : 1.Job Name, 2.Job Group Name, 3.Job Class) JobDetail job1 = new JobDetail("job1", "group1", TestJob1.class); // Trigger1 생성 (Parameter : 1.Trigger Name, 2.Trigger Group Name, 3.Cron Expression) CronTrigger trigger1 = new CronTrigger("trigger1", "group1", "0 * * * * ?"); // 아래는 trigger 가 misfire 되었을 경우에 대한 처리를 설정한다. //trigger1.setMisfireInstruction(CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING); sched.scheduleJob(job1, trigger1); // Job2 생성후 등록 JobDetail job2 = new JobDetail("job2", "group2", TestJob2.class); CronTrigger trigger2 = new CronTrigger("trigger2", "group2", "30 * * * * ?"); sched.scheduleJob(job2, trigger2); // Job2 삭제 (30초 후) // Thread.sleep(30000); // sched.deleteJob("job2", "group2"); } catch (SchedulerException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } } public static void main(String[] args) { new TestCronTrigger(); } }
TestJob1.execute() is Executed... : Tue Jun 16 19:09:00 KST 2009
TestJob2.execute() is Executed... : Tue Jun 16 19:09:30 KST 2009 TestJob1.execute() is Executed... : Tue Jun 16 19:10:00 KST 2009 TestJob2.execute() is Executed... : Tue Jun 16 19:10:30 KST 2009 TestJob1.execute() is Executed... : Tue Jun 16 19:11:00 KST 2009
1. Seconds (0-59) - * / 2. Minutes (0-59) - * / 3. Hours (0-23) - * / 4. Day-of-month (1-31) - * ? / L W C 5. Month (1-12 or JAN-DEC) - * / 6. Day-of-week (1-7 or SUN-SAT) - * ? / L C # 7. Year (optional, empty, 1970-2099) - * /
|
SimpleTrigger을 사용한 예제
[ex : Job 구현 클래스]
[ex : 잡스케줄링]
|
[Java] Quartz (쿼츠)를 사용하여 자바 스케줄링(scheduling) 하기
Quartz : http://www.opensymphony.com/
tutorial : http://quartz-scheduler.org/docs/tutorial/index.html
추가 Library
- Apache Commons Collections >> http://commons.apache.org/collections/
- Apache Commons Logging >> http://commons.apache.org/logging/
- Apache Log4j >> http://logging.apache.org/log4j/1.2/index.html
참고 : http://blog.naver.com/kst7132?Redirect=Log&logNo=140101991602
http://blog.naver.com/minis24?Redirect=Log&logNo=80105633208
스트러츠에서 Quartz 사용 : http://mygeni.tistory.com/79
스프링에서 Quartz 사용 : http://suya55.springnote.com/pages/1126992
CronTrigger 사용한 예제
먼저 테스트로 사용할 Job 클래스 두개를 아래와 같이 만들어 준다. import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; public class TestJob1 implements Job { public void execute(JobExecutionContext context) { System.out.println("TestJob1.execute() is Executed... : " + new Date()); } }
import java.util.Date; import org.quartz.Job; import org.quartz.JobExecutionContext; public class TestJob2 implements Job { public void execute(JobExecutionContext context) { System.out.println("TestJob2.execute() is Executed... : " + new Date()); } }
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 TestCronTrigger { private SchedulerFactory schedFact; private Scheduler sched; public TestCronTrigger() { try { // 스케쥴 생성후 시작 schedFact = new StdSchedulerFactory(); sched = schedFact.getScheduler(); sched.start(); // Job1 생성 (Parameter : 1.Job Name, 2.Job Group Name, 3.Job Class) JobDetail job1 = new JobDetail("job1", "group1", TestJob1.class); // Trigger1 생성 (Parameter : 1.Trigger Name, 2.Trigger Group Name, 3.Cron Expression) CronTrigger trigger1 = new CronTrigger("trigger1", "group1", "0 * * * * ?"); // 아래는 trigger 가 misfire 되었을 경우에 대한 처리를 설정한다. //trigger1.setMisfireInstruction(CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING); sched.scheduleJob(job1, trigger1); // Job2 생성후 등록 JobDetail job2 = new JobDetail("job2", "group2", TestJob2.class); CronTrigger trigger2 = new CronTrigger("trigger2", "group2", "30 * * * * ?"); sched.scheduleJob(job2, trigger2); // Job2 삭제 (30초 후) // Thread.sleep(30000); // sched.deleteJob("job2", "group2"); } catch (SchedulerException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } } public static void main(String[] args) { new TestCronTrigger(); } }
TestJob1.execute() is Executed... : Tue Jun 16 19:09:00 KST 2009
TestJob2.execute() is Executed... : Tue Jun 16 19:09:30 KST 2009 TestJob1.execute() is Executed... : Tue Jun 16 19:10:00 KST 2009 TestJob2.execute() is Executed... : Tue Jun 16 19:10:30 KST 2009 TestJob1.execute() is Executed... : Tue Jun 16 19:11:00 KST 2009
1. Seconds (0-59) - * / 2. Minutes (0-59) - * / 3. Hours (0-23) - * / 4. Day-of-month (1-31) - * ? / L W C 5. Month (1-12 or JAN-DEC) - * / 6. Day-of-week (1-7 or SUN-SAT) - * ? / L C # 7. Year (optional, empty, 1970-2099) - * /
|
SimpleTrigger을 사용한 예제
[ex : Job 구현 클래스]
[ex : 잡스케줄링]
|
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.