크론 작업은 반복되는 주기로 예약되며 unix-cron 기반 형식으로 지정됩니다. 작업이 하루에 여러 번 실행되거나 특정 날짜와 특정 달에 실행되도록 일정을 정의할 수 있습니다. (더 이상 사용하지 않는 것이 좋지만 기존 작업에는 계속 기존 App Engine 크론 구문이 지원됩니다.)
크론 작업 형식
일정은 작업 실행 시간을 나타내는 unix-cron 문자열 형식(* * * * *
)을 사용하여 정의됩니다. 이 형식은 한 줄에 5개 필드로 설정됩니다.
Google Cloud 콘솔, Google Cloud CLI 또는 Cloud Scheduler REST API를 사용하여 일정을 설정할 수 있습니다.
시간 필드의 형식과 사용 가능한 값은 다음과 같으며 이 순서를 따라야 합니다.
필드 | 유효한 값의 형식 |
---|---|
분 | 0-59 |
시간 | 0-23 |
일 | 1-31 |
월 | 1-12 (또는 JAN에서 DEC까지) |
요일 | 0-6 (또는 SUN에서 SAT까지, 또는 일요일의 경우 7) |
특수문자
- 필드에는 항상 '처음~마지막'을 나타내는 별표(
*
)가 포함될 수 있습니다. - 범위는 하이픈(
-
)으로 구분된 2개의 숫자이며 지정된 범위는 경계를 포함합니다. - 범위 뒤에
/NUMBER
를 추가하면 범위 안에서 숫자 값의 증분이 지정됩니다. 예를 들어Hour
필드에0-23/2
및*/2
를 사용하면 2시간마다 실행하도록 지정됩니다. - 목록은 쉼표(
,
)로 구분된 숫자 또는 범위의 집합입니다. 예를 들어Day of the month
필드에1,2,5,6
을 사용하면 매월 1일, 2일, 5일, 6일에 실행하도록 지정됩니다.
시간대
작업을 만들 때 Google Cloud 콘솔(작업 만들기 페이지의 목록에서 시간대 선택) 또는 gcloud
--time-zone
플래그를 통해 일정 계산에 사용할 시간대를 선택할 수 있습니다. 기본 시간대는 Etc/UTC
입니다.
일부 시간대의 경우 일광 절약 시간으로 인해 작업이 예기치 않게 실행되거나 실행되지 않을 수 있습니다. 이는 Cloud Scheduler가 현지시간으로 작동하기 때문입니다. 시간이 뒤로 돌아가는 경우와 같이 작업이 예약된 시간이 두 번 발생할 가능성이 있는 경우, 예약된 작업이 비정상적으로 실행될 수 있습니다.
작업이 매우 정확한 주기로 실행되어야 하는 경우 일광 절약 시간을 시행하지 않는 시간대를 선택하는 것이 좋습니다. 특히 Cloud Scheduler에 UTC를 선택하면 이러한 문제가 완전히 배제됩니다.
샘플 일정
다음 표는 샘플 크론 작업 일정 몇 가지와 그 설명을 보여줍니다.
샘플 일정 | 크론 작업 형식 |
---|---|
1분마다 | * * * * * |
매주 토요일 23:45(오후 11:45) | 45 23 * * 6 |
매주 월요일 09:00(오전 9:00) | 0 9 * * 1 |
매주 일요일 04:05(오전 4:05) | 5 4 * * SUN |
매주 평일(월~금) 22:00(오후 10:00) | 0 22 * * 1-5 |