Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

그냥글쓰기

Quartz 2.3.2에서 Cron 표현식 사용하기

Billcorea 2025. 1. 24. 15:36
반응형

Quartz 2.3.2에서 Cron 표현식 사용하기

copilot


Quartz Scheduler는 Java 기반의 작업 스케줄링 라이브러리로, Cron 표현식을 사용하여 작업을 예약할 수 있습니다. 이 글에서는 Quartz 2.3.2에서 Cron 표현식을 정의하고 사용하는 방법을 알아보겠습니다.

Cron 표현식이란?
Cron 표현식은 특정 시간에 작업을 예약하기 위한 문자열입니다. Quartz Cron 표현식은 총 7개의 필드로 구성되며, 각 필드는 공백으로 구분됩니다. 각 필드의 의미는 다음과 같습니다:

Seconds    Minutes    Hours    Day-of-Month    Month    Day-of-Week    Year (Optional)
Public code references from 2 repositories
각 필드의 범위
초 (Seconds) 0-59 초 단위 (0에서 59까지)
분 (Minutes) 0-59 분 단위 (0에서 59까지)
시 (Hours) 0-23 시 단위 (0에서 23까지)
일 (Day-of-Month) 1-31 달의 일 (1에서 31까지)
월 (Month) 1-12 또는 JAN-DEC 월 (1에서 12 또는 JAN에서 DEC까지)
요일 (Day-of-Week) 1-7 또는 SUN-SAT 요일 (1=일요일, 7=토요일 또는 SUN에서 SAT까지)
년 (Year) 1970-2099 (옵션) 년도 (옵션 필드)
특수문자
*: 모든 값
?: 특정 값 없음 (Day-of-Month과 Day-of-Week 필드에서 사용)
-: 범위
,: 리스트 구분
/: 증가 간격
L: 마지막 (Day-of-Month과 Day-of-Week 필드에서 사용)
W: 가장 가까운 평일 (Day-of-Month 필드에서 사용)
#: N번째 요일 (Day-of-Week 필드에서 사용)




예제 표현식

  • 매일 자정에 실행
0 0 0 * * ? *

 

  • 매일 오후 2시 30분에 실행
0 30 14 * * ? *

 

  • 매주 월요일 오전 10시에 실행
0 0 10 ? * MON *

 

  • 매월 1일 자정에 실행
0 0 0 1 * ? *

 

  • 매년 1월 1일 자정에 실행
0 0 0 1 1 ? *


Quartz에서 Cron 표현식 사용하기
Quartz에서 Cron 표현식을 사용하여 작업을 예약하려면 CronTrigger를 사용합니다. 다음은 예제 코드입니다:

import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

public class QuartzCronExample {
    public static void main(String[] args) {
        try {
            // 스케줄러 팩토리 생성
            SchedulerFactory schedulerFactory = new StdSchedulerFactory();
            Scheduler scheduler = schedulerFactory.getScheduler();

            // 작업 생성
            JobDetail job = JobBuilder.newJob(MyJob.class)
                    .withIdentity("myJob", "group1")
                    .build();

            // Cron 표현식을 사용한 트리거 생성
            CronTrigger trigger = TriggerBuilder.newTrigger()
                    .withIdentity("myTrigger", "group1")
                    .withSchedule(CronScheduleBuilder.cronSchedule("0 0 0 * * ?"))
                    .build();

            // 스케줄러에 작업과 트리거 추가
            scheduler.start();
            scheduler.scheduleJob(job, trigger);

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


이 예제에서는 매일 자정에 실행되는 작업을 예약합니다. CronScheduleBuilder.cronSchedule 메서드에 Cron 표현식을 전달하여 트리거를 생성합니다.

결론
이 글에서는 Quartz 2.3.2에서 Cron 표현식을 정의하고 사용하는 방법을 살펴보았습니다. Cron 표현식을 사용하면 정해진 시간에 작업을 예약할 수 있어 매우 유용합니다. Quartz Scheduler를 활용하여 다양한 작업을 자동화해 보세요!

이 포스트가 도움이 되길 바랍니다! 추가적인 질문이 있으면 언제든지 남겨 주세요.

반응형