잡 스펙의 `schedule` 블록
잡 스펙의 schedule 블록
시간 기반 태스크 실행은 schedule 블록을 사용해 활성화돼요. schedule 블록은 태스크가 실행될 수 있는 시점을 제어해요.
출처: 문서
본문
| 배치 | job -> group -> task -> **periodic** |
|---|
Enterprise
이 기능은 Nomad Enterprise(새 탭에서 열림)가 필요해요.
참고: 시간 기반 태스크 실행은 실험적 기능이며 변경될 수 있어요. 이 기능은 선별된 고객을 위해 지원돼요. 변경 사항을 찾으려면 Upgrade Guide를 참고하세요.
periodic 잡과 달리 schedule 블록은 개별 태스크에 적용돼요. Nomad 클라이언트는 Nomad 서버와의 상호작용 없이 지정된 시간에 태스크를 시작하고 중지해요. 즉 클라이언트가 서버에서 연결이 끊겨도 시간 기반 태스크 실행이 동작해요. 태스크 자체가 중지되어도 태스크의 리소스는 schedule 밖에서도 계속 할당된 상태로 유지돼요.
job "docs" {
group "tbte" {
task "scheduled" {
schedule {
cron {
start = "30 9 * * MON-FRI *"
end = "0 16"
timezone = "America/New_York"
}
}
}
}
}
매개변수 (Parameters)
schedule 블록은 다음을 포함하는 cron 블록을 가져야 해요:
-
start(string: <required>)- 태스크를 시작해야 할 때.,또는/문자가 없는 6필드 cron 형식(초 없음)으로 지정돼요. -
end(string: <required>)- 태스크를 중지해야 할 때(kill_signal과kill_timeout이 적용됨).,또는/문자가 없는 2필드 cron 형식(분과 시)으로 지정돼요. -
timezone(string: "Local")-start와end시간이 지정된 시간대. 기본값은 잡이 스케줄링된 Nomad 클라이언트의 로컬 시간대.
제한 사항 (Limitations)
-
지정된
schedule밖에서의 잡 배포는 성공할 수 없어요. 스케줄 밖에서 시간 기반 태스크 실행을 사용해 잡을 업데이트하려면 강제 업데이트를 하세요. -
야간 스케줄은 현재 지원되지 않아요.
timezone을 조정하면 야간 스케줄을 단일 하루 안의 시간으로 변환할 수 있어요.