[java] Quartz Scheduler의 사용 예시

Quartz Scheduler는 자바에서 스케줄링 작업을 관리하는 라이브러리입니다. 이번 글에서는 Quartz Scheduler의 기본 사용 예시를 알아보겠습니다.

1. Quartz 의존성 추가

먼저 Maven 또는 Gradle을 사용하여 프로젝트에 Quartz 의존성을 추가해야 합니다.

Maven에서의 의존성 추가:

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.3.2</version>
</dependency>

Gradle에서의 의존성 추가:

implementation 'org.quartz-scheduler:quartz:2.3.2'

2. 스케줄링 작업 생성

Quartz Scheduler를 사용하여 스케줄링 작업을 생성하려면 Job을 구현하고 Trigger를 설정해야 합니다.

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class MyJob implements Job {
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        // 스케줄링 작업 실행될 때 실행될 코드 작성
        System.out.println("스케줄링 작업 실행됨");
    }
}

3. 스케줄링 작업 실행

Quartz Scheduler를 시작하고 스케줄링 작업을 실행하는 코드를 작성해보겠습니다.

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

public class SchedulerExample {
    public static void main(String[] args) {
        try {
            // 스케줄러 인스턴스 생성
            Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
            
            // JobDetail 생성
            JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
                    .withIdentity("myJob", "group1")
                    .build();

            // Trigger 생성
            Trigger trigger = TriggerBuilder.newTrigger()
                    .withIdentity("myTrigger", "group1")
                    .startNow()
                    .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                            .withIntervalInSeconds(10)
                            .repeatForever())
                    .build();

            // 작업을 스케줄에 등록
            scheduler.scheduleJob(jobDetail, trigger);

            // 스케줄러 실행
            scheduler.start();

            // 몇 초간 스케줄링 작업 실행을 유지
            Thread.sleep(60000);

            // 스케줄러 정지
            scheduler.shutdown();

        } catch (SchedulerException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

위의 예시 코드에서는 MyJob 클래스를 작성하여 스케줄링 작업을 정의하고, SchedulerExample 클래스에서 스케줄러를 생성하고 작업을 등록하여 실행하고 종료합니다.

이제 위의 코드를 실행하면 10초마다 “스케줄링 작업 실행됨”이라는 메시지가 출력되는 스케줄링 작업이 실행될 것입니다.

Quartz Scheduler를 사용하여 스케줄링 작업을 관리하는 방법을 살펴보았습니다. 여러분의 프로젝트에 맞게 사용해보세요!

참고자료