[java] Quartz Scheduler에서 작업 간 딜레이 설정하기
Quartz Scheduler 설정하기
먼저, Quartz Scheduler를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우 pom.xml
파일에 다음 종속성을 추가합니다:
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>
이제 Quartz Scheduler를 구성해 보겠습니다.
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
public class QuartzJob {
public static void main(String[] args) {
try {
// 스케줄러 생성
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// Job 생성
JobDetail job = JobBuilder.newJob(MyJob.class)
.withIdentity("myJob", "group1")
.build();
// Trigger 생성
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("myTrigger", "group1")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(10) // 딜레이를 설정할 부분입니다.
.repeatForever())
.build();
// Job과 Trigger 스케줄에 등록
scheduler.scheduleJob(job, trigger);
// 스케줄러 시작
scheduler.start();
// 일정 시간 실행을 유지한 후 스케줄러 중지
Thread.sleep(60000);
scheduler.shutdown();
} catch (SchedulerException | InterruptedException e) {
e.printStackTrace();
}
}
}
public class MyJob implements org.quartz.Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// 실행할 작업 내용을 작성합니다.
System.out.println("Hello, Quartz!");
}
}
위 코드에서 SimpleScheduleBuilder
를 사용하여 withIntervalInSeconds()
메서드로 작업 간 딜레이를 설정할 수 있습니다. repeatForever()
를 사용하면 작업을 반복적으로 실행할 수 있습니다.
결론
Quartz Scheduler를 사용하여 Java 애플리케이션에 작업 스케줄링을 구현할 수 있습니다. SimpleScheduleBuilder
클래스를 사용하여 작업 간 딜레이를 설정하면 주기적으로 작업을 실행할 수 있습니다. Quartz Scheduler의 다양한 기능을 활용하여 애플리케이션의 작업 스케줄링을 유연하게 관리할 수 있습니다.