- 전체
- 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 : 잡스케줄링]
|
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.

