잡 스펙의 `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을 조정하면 야간 스케줄을 단일 하루 안의 시간으로 변환할 수 있어요.

더 알아보기 (Learn more)