Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

스케줄 트리거 참조

트리거는 스케줄을 실행할 조건입니다. 시간 트리거는 지정한 순간에만 충족되고 그 순간이 지나면 충족 상태가 사라집니다. 이벤트 트리거는 이벤트가 발생한 뒤 전체 조건이 충족되어 스케줄이 실행될 때까지 충족 상태를 유지합니다. Foundry는 AND와 OR를 임의 깊이로 중첩하여 이 조건들을 결합할 수 있습니다.

시간 트리거와 cron

시간 트리거는 cron 표현식과 시간대로 정의합니다. 단순한 반복 일정은 편집기에서 선택할 수 있고, 복잡한 일정은 사용자 지정 cron 표현식을 입력합니다. 스케줄 편집기의 필드는 왼쪽부터 분, 시, 일, 월, 요일인 5필드 형식입니다.

분 시 일 월 요일
*  *  *  *  *

Data Health는 맨 앞에 초가 있는 6필드 Quartz 형식을 사용합니다. 스케줄의 5필드 표현식을 Data Health 설정에 그대로 넣지 않습니다. 스케줄 편집기는 다음 값과 확장 문자를 지원합니다.

필드허용 값허용 특수 문자
분0~59*, -, /, ,
시0~23*, -, /, ,
일1~31*, -, /, ,, L
월1~12 또는 JAN~DEC*, -, /, ,
요일0~6 또는 SUN~SAT; 7도 일요일입니다.*, -, /, ,, L, #

특수 문자

문자의미와 예시
*필드의 모든 값입니다. 분 필드의 *는 매분을 뜻합니다.
-양 끝을 포함한 범위입니다. 분의 10-20은 10분부터 20분까지입니다.
/지정한 범위를 일정 간격으로 선택합니다. 시작 값만 쓰면 그 값부터 필드 최댓값까지가 범위입니다.
,값, 범위 또는 간격 범위를 나열합니다.
L마지막 값을 뜻하며 사용한 필드와 결합 값에 따라 의미가 달라집니다.
#그달의 n번째 특정 요일을 뜻합니다.
입력 위치와 값선택되는 값 또는 시점
분 25/1025, 35, 45, 55분입니다.
분 25-45/1025, 35, 45분입니다.
분 10,20,3010, 20, 30분입니다.
분 10,20-3010분과 20분부터 30분까지입니다.
분 10,25-45/1010, 25, 35, 45분입니다.
일 L그달의 마지막 날입니다.
요일 L주의 마지막 요일인 토요일입니다.
요일 2L그달의 마지막 화요일입니다.
요일 2#4그달의 네 번째 화요일입니다.

일과 요일 필드가 모두 *가 아니면 두 조건 중 하나만 일치해도 날짜 조건을 충족합니다. 예를 들어 0 9 20 * 4는 매월 20일이 목요일일 때만 실행하는 표현식이 아닙니다. 매월 20일과 매주 목요일의 09:00에 실행합니다.

전체 표현식 예시

아래 시각은 트리거에서 선택한 시간대를 기준으로 합니다.

cron 표현식실행 시각
30 9 * * 1매주 월요일 09:30
30 17 * 2 12월의 매주 월요일 17:30
0 9-17 10 * *매월 10일 09:00부터 17:00까지 매시간
0 9-17/2 10 * *매월 10일 09:00, 11:00, 13:00, 15:00, 17:00
0 9,17 10 * *매월 10일 09:00과 17:00
0/5 9-17 15 3 *3월 15일 09:00부터 17:55까지 5분 간격
0/5 9,17 15 3 *3월 15일 09:00~09:55와 17:00~17:55에 각각 5분 간격
0 9 L * *매월 마지막 날 09:00
0 9 L 2 *2월 마지막 날 09:00
0 9 * * L매주 토요일 09:00
0 9 * * 2L매월 마지막 화요일 09:00
0 9 * 4 3#14월 첫 번째 수요일 09:00
0 9 20 * 4매월 20일과 매주 목요일 09:00

일광 절약 시간 등 시계 변경

시간 트리거는 선택한 시간대의 현지 시계 시각을 사용합니다. 시계가 앞으로 이동하여 특정 시각이 생략되면 그 시각의 트리거도 발생하지 않습니다. 시계가 뒤로 이동하여 같은 시각이 두 번 나타나면 트리거도 두 번 충족됩니다.

예를 들어 시계가 01:00에서 02:00으로 건너뛰면 01:30 트리거는 발생하지 않습니다. 02:00에서 01:00으로 되돌아가면 01:30이 두 번 나타나므로 두 번 충족됩니다.

이벤트 트리거

이벤트 트리거는 지정한 이벤트가 발생하면 참 상태가 됩니다. 전체 트리거가 충족되어 스케줄이 실행될 때까지 그 상태를 유지합니다.

이벤트충족 조건
New logic데이터셋을 계산하는 로직이 변경됩니다.
Data updated데이터셋을 갱신하는 트랜잭션이 커밋됩니다.
Job succeeded실행 작업이 성공적으로 완료됩니다. 트랜잭션을 커밋하지 않은 성공한 작업도 해당합니다.
Media set updated트랜잭션형 미디어 집합은 트랜잭션 커밋 시 발생합니다. 트랜잭션을 사용하지 않는 미디어 집합은 갱신 후 발생하지만 즉시 발생한다고 보장하지 않습니다.
Schedule ran successfully예약한 빌드가 성공적으로 완료됩니다.
Schedule run failed예약한 빌드가 실패합니다.
Table updated테이블을 갱신하는 트랜잭션이 커밋됩니다.

Schedule ran successfully 이벤트의 빌드 완료 조건은 스케줄 실행 이력의 Succeeded 상태와 구분합니다. 이력의 Succeeded는 빌드를 시작했다는 뜻이며 그 빌드가 나중에 실패할 수도 있습니다.

복합 트리거

AND는 구성 조건을 모두 요구하고, OR는 하나 이상을 요구합니다. 다음 표에서 T1과 T2는 시간 트리거, E1과 E2는 이벤트 트리거입니다.

결합실행 조건
AND(T1, E1)E1이 이미 발생했다면 T1 시각에 충족됩니다.
OR(T1, E1)T1 시각 또는 E1 발생 시 충족됩니다.
AND(T1, T2)T1과 T2가 같은 순간에 모두 충족되어야 합니다.
OR(T1, T2)T1 또는 T2 시각에 충족됩니다.
AND(E1, E2)E1과 E2가 모두 발생하면 충족됩니다.
OR(E1, E2)E1 또는 E2가 발생하면 충족됩니다.
AND(T1, OR(E1, E2))E1과 E2 중 하나 이상이 먼저 발생했다면 T1 시각에 충족됩니다.
OR(T1, AND(E1, E2))T1 시각 또는 E1과 E2가 모두 발생한 시점에 충족됩니다.

여러 시간 트리거를 AND로 묶으면 모든 시각 조건이 일치하는 순간만 남습니다. 매일 한 번인 조건과 매시간 조건을 AND로 묶어도 매일 한 번만 충족되므로, 같은 의미의 단일 시간 트리거로 표현하는 편이 명확합니다.

이벤트가 참 상태를 유지한다는 특성 때문에 시간과 이벤트의 AND는 최근 몇 분 이내의 데이터 갱신을 뜻하지 않습니다. 실제 시각별 동작은 스케줄 구성 예시에서 확인할 수 있습니다.