스케줄은 저장된 워크플로를 정해진 시간표에 따라 매번 같은 입력과 예산으로 시작합니다. 시작된 실행은 모두 직접 시작한 실행과 똑같이 기록되고, 비용이 청구되고, 폐기됩니다.
스케줄
스케줄에는 워크플로, cron 문법의 시간표와 시간대, 그리고 각 실행의 입력과 예산을 지정합니다. 예를 들어 도쿄 시간으로 평일 09:00마다 전날 가입한 고객을 조회해 연결을 통해 각자에게 환영 이메일을 보내는 스케줄은 다음과 같습니다.
{
"workflow": "welcome-new-customers",
"name": "Weekday welcome emails",
"cron": "0 9 * * 1-5",
"timezone": "Asia/Tokyo",
"input": { "signed_up": "yesterday" },
"max_cost_micros": 200000
}대시보드의 스케줄에서는 시간표를 대신 만들어 줍니다. 몇 분마다, 매시간, 하루 중 정해진 시각, 선택한 요일이나 날짜, 또는 임의의 cron 표현식을 쓸 수 있습니다. 저장하기 전에 다음 시작 시각도 보여 줍니다.
시간표
시간표는 분, 시, 일, 월, 요일의 다섯 필드로 이루어집니다. 각 필드에는 값, 목록(1,15), 범위(1-5), 간격(*/15), 또는 *를 쓸 수 있습니다. 약식 표기도 사용할 수 있습니다.
| 시간표 | 시작 시점 |
|---|---|
*/ | 15분마다. |
0 * * * * | 매시 정각. |
30 8,17 * * * | 매일 08:30과 17:30. |
0 9 * * 1-5 | 평일 09:00. |
0 6 1 * * | 매월 1일 06:00. |
@daily | 매일 자정. @hourly, @weekly, @monthly도 사용할 수 있습니다. |
@every 90m | 스케줄을 저장한 시점부터 계산해 90분마다. |
시각은 스케줄의 timezone(Europe/Madrid 같은 IANA 이름)을 기준으로 해석하므로, 09:00 스케줄은 서머타임이 바뀌어도 09:00을 유지합니다. 스케줄은 1분에 최대 한 번 시작됩니다.
시작 방식
- Ephemeral은 몇 초마다 시작 시각이 된 스케줄이 있는지 확인하고, 워크플로, 입력, 예산으로
POST /v1/runs를 호출한 것처럼 각각 시작합니다. 실행에는 어느 스케줄이 시작했는지 기록됩니다. - 각 시작 시각에는 한 번만 실행됩니다. 시작 시각이 되었을 때 Ephemeral을 사용할 수 없었다면, 복구된 후 한 번 실행하고 이후에는 시간표를 따릅니다.
- 기본적으로 스케줄의 이전 실행이 아직 진행 중이면 이번 시작은 건너뛰고, 스케줄에 그 사실을 기록합니다. 실행이 겹치도록 허용하려면
skip_if_running을false로 설정하세요. - 워크플로가 삭제되었거나 크레딧이 부족한 경우처럼 시작에 실패하면, 스케줄이 이유를 기록하고 다음 시각에 다시 시도합니다. 연속으로 다섯 번 시작에 실패하면 일시 중지되며, 다시 켜면 횟수가 초기화됩니다.
스케줄된 실행 따라가기
스케줄된 실행은 다른 실행과 함께 표시되며 schedule_id를 가집니다. 한 스케줄의 실행 목록은 GET /v1/runs?schedule={id}로 조회합니다. 스케줄은 콜백을 보내지 않습니다. 결과에 따라 동작하려면 워크플로가 연결을 통해 직접 처리하게 하거나, 스케줄의 실행을 폴링하세요.