1. 스케줄링 라이브러리, Quartz
- 다운로드 : https://mvnrepository.com/artifact/org.quartz-scheduler/quartz/2.3.2
2. Quartz 사용방법
cronSchedule(초 분 시 일 월 요일 연도) : 연도는 생략 가능
// cronSchedule 예시
CronScheduleBuilder.cronSchedule(0/5 * * * * ?) // 5초마다 실행
CronScheduleBuilder.cronSchedule(5 * * * * ?) // 매 분 5초마다 실행
CronScheduleBuilder.cronSchedule(* 5 * * * ?) // 매 시간 5분마다 실행
CronScheduleBuilder.cronSchedule(0 0 0 * * ?) // 매일 정각에 실행
CronScheduleBuilder.cronSchedule(0 30 2 * * ?) // 매일 오전 2시간 30분에 실행
- QuartzTest.java
package app;
import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
import task.TimeTask;
public class QuartzTest {
public static void main(String[] args) {
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler;
try {
scheduler = schedulerFactory.getScheduler();
JobDetail job = JobBuilder.newJob(TimeTask.class)
.withIdentity("time", Scheduler.DEFAULT_GROUP)
.build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("timetrigger", Scheduler.DEFAULT_GROUP)
.withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
.build();
scheduler.scheduleJob(job, trigger);
scheduler.start();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}